(57)【要約】【課題】性能測定および報告に関連するシステムおよび方法を提供すること。【解決手段】ある方法では、第1のアプリケーションが、第1のプロファイリングのセッションでプロファイリングされ、第1のアプリケーションのセグメントの性能に関連する第1のパラメータのデータセットが生成される。セッション報告が、第1のパラメータのデータセットに基づいて作成される。さらに、セッション報告の一部に基づいて、アプリケーションのセグメントのうちの1つまたは複数のためのコメントが受け取られる。そして、まとめの報告が、第1のパラメータのデータセットおよびコメントに基づいて生成される。【選択図】図1
2013030151.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションの性能測定および報告のためのコンピュータで実施される方法であって、
第1のプロファイリングのセッションにおいて、アプリケーションのセグメントの性能に関連する第1のパラメータのデータセットを生成するステップと、
前記第1のパラメータのデータセットに基づいて、セッション報告を作成するステップと、
前記セッション報告に一部基づいて、前記アプリケーションの前記セグメントの1つまたは複数のためのコメントを受信するステップと、
前記第1のパラメータのデータセットおよび前記コメントに基づいて、まとめの報告を提供するステップと
を含む、方法。
【請求項２】
前記性能パラメータが、プロセッサ利用度、メモリ利用度、ネットワーク利用度、入出力利用度、データベースクエリの統計値、応答時間に関する統計値、セッションに関する統計値、スループットの統計値、プロセスのスレッドの統計値、およびキューに関する統計値のうちの少なくとも1つを含む、請求項1に記載のコンピュータで実施される方法。
【請求項３】
前記第1のパラメータのデータセット中の性能パラメータが、事前に規定された範囲の外にあるかどうかを判定するステップと、
1人または複数のユーザに、肯定的な判定に基づき前記コメントを提供するように促すステップと
をさらに含む、請求項1に記載のコンピュータで実施される方法。
【請求項４】
前記コメントが、ハードウェア設定、ランタイム条件、前記第1のアプリケーションの一部、セッションのタイミング、および前記セッションの期間のうちの少なくとも1つに関する、請求項1から3のいずれか一項に記載のコンピュータで実施される方法。
【請求項５】
前記1人または複数のユーザから受信された前記コメントが、ユーザ名およびネットワークIDのうちの少なくとも1つに基づいて視覚的に区別される、請求項4に記載のコンピュータで実施される方法。
【請求項６】
第2のプロファイリングのセッションでプロファイリングされる第2のアプリケーションに対応する、第2のパラメータのデータセットを受信するステップと、
前記第1のアプリケーションおよび前記第2のアプリケーションに共通のセグメントを識別するステップと、
前記第1のパラメータのデータセットおよび前記第2のパラメータのデータセットに基づいて、前記共通のセグメントのうちの少なくとも1つのための比較の報告を生成するステップと
をさらに含む、請求項1に記載のコンピュータで実施される方法。
【請求項７】
前記第2のアプリケーションが、前記第1のアプリケーションおよび前記第1のアプリケーションの修正されたバージョンのうちの少なくとも1つである、請求項6に記載のコンピュータで実施される方法。
【請求項８】
前記比較の報告が、前記セッション報告の一部に基づいて受信された少なくとも1つのコメントを含む、請求項6から7のいずれか一項に記載のコンピュータで実施される方法。
【請求項９】
2つ以上のプロファイリングのセッションでプロファイリングされるアプリケーションの性能パラメータに対応する、パラメータのデータセットを取得するステップと、
前記複数のアプリケーションに共通のセグメントを識別するステップと、
前記パラメータのデータセットに基づいて、前記共通のセグメントの1つまたは複数のための比較の報告を生成するステップと
を含む、性能測定および報告のためのコンピュータで実施される方法。
【請求項１０】
前記比較の報告を生成する前記ステップが、前記比較の報告において、前記共通のセグメントの前記1つまたは複数に対応する前期パラメータのデータセットの前記性能パラメータの変化を視覚的に示すステップを含む、請求項9に記載のコンピュータで実施される方法。
【請求項１１】
プロセッサ(104)と、
前記プロセッサ(104)に結合されるメモリ(110)と
を含む、性能測定および報告のためのシステム(102)であって、前記メモリ(110)が、
第1のアプリケーションの性能をプロファイリングし、前記第1のアプリケーションにおいて実行されるセグメントに関連する第1のパラメータのデータセットを生成するように構成された、プロファイリングモジュール(116)と、
前記セグメントのうちの1つまたは複数の性能を変えるためのコメントを受信し、
前記第1のパラメータのデータセットおよび前記コメントのうちの少なくとも1つに基づいて報告を生成する
ように構成された、報告モジュール(118)と
を含む、システム。
【請求項１２】
前記報告モジュール(118)が、
前記第1のパラメータのデータセット中の少なくとも1つのデータポイントが、事前に規定された範囲から逸脱しているかどうかを判定し、
肯定的な判定に基づいて、セッション報告中で前記逸脱を示す
ようにさらに構成される、請求項11に記載のシステム。
【請求項１３】
2つ以上のアプリケーションに共通のセグメントを識別するように構成された比較モジュール(120)をさらに含む、請求項12に記載のシステム(102)であって、前記報告モジュール(118)が、
前記共通のセグメントのうちの1つまたは複数の性能が、前記2つ以上のアプリケーションにわたって変化したかどうかを判定し、
肯定的な判定に基づいて、前記比較の報告において、前記性能の変化を示す
ようにさらに構成された、システム(102)。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の主題は、ソフトウェアのプロファイリングに関し、特に、ただし非排他的に、ソフトウェアアプリケーションの性能測定および報告のためのシステムおよび方法に関する。
【背景技術】
【０００２】
一般に、ソフトウェアアプリケーションの性能測定は、ソフトウェアアプリケーションの様々なコンポーネントが、様々な作業負荷の条件下でどのように機能するかを判定するために実行される。性能測定は、開発、テスト、プロファイリングおよびモニタリングの間を含む、ソフトウェアアプリケーションのライフサイクルの様々な段階において行われうる。性能測定は、スケーラビリティ、信頼性およびリソースの使用量のような、ソフトウェアアプリケーションの他の属性の確認および検証にも用いられる。一般に、ソフトウェアアプリケーションの性能は、例えば、メモリの統計値、プロセッサの統計値、ネットワークの統計値、スレッドの統計値、応答時間など、様々な性能パラメータに基づいて測定される。そのような性能測定は、通常、アプリケーション開発チームおよび関連する関係者により実行される。
【０００３】
性能測定を行うユーザは、次いで測定結果を分析し、アプリケーション開発チームに提案をすることができる。提案は、様々な態様の、アプリケーション、ハードウェア設定、ランタイム条件などに関連しうる。測定結果および提案に基づいて、アプリケーション開発チームは、必要に応じてさらなるステップをとることができる。
【０００４】
場合によっては、1つの性能パラメータを改善するための提案を実施することで、別の性能パラメータに関してアプリケーションの性能が低下しうる。したがって、ユーザは再び、様々な性能パラメータを測定し、性能を改善するための提案を送ることができる。提案をすることとソフトウェアアプリケーションの性能を測定することとのこのサイクルは、通常、ソフトウェアアプリケーションの性能パラメータが事前に規定された許容範囲内に収まるまで続く。
【発明の概要】
【課題を解決するための手段】
【０００５】
この概要は、性能測定および報告のためのシステムおよび方法に関連する概念を紹介するために提供され、その概念は、詳細な説明において以下でさらに説明される。この概要は、特許請求される主題の必要不可欠な特徴を特定することも、特許請求される主題の範囲を決定または制限するのに用いることも、意図されていない。
【０００６】
一実装形態では、アプリケーションにおいてプロファイリングされるセグメントに関連するパラメータのデータセットが生成され、セッション報告がパラメータのデータセットに基づいて作成される。セッション報告に一部基づいて、セグメントのうちの1つまたは複数についてコメントが受け取られる。パラメータのデータセットとコメントとに基づいて、まとめの報告が生成される。
【０００７】
詳細な説明が、添付の図面を参照して説明される。図面中、参照番号の最も左の桁は、参照番号が最初に現れる図面を特定する。図面全体で、同じ番号が同様の機構およびコンポーネントを指すのに用いられる。
【図面の簡単な説明】
【０００８】
【図１】本主題のある実施形態による、性能測定および報告のシステムのある実装形態を示す図である。
【図２】本主題のある実施形態による、性能測定および報告の方法を示す図である。
【図３】本主題の別の実装形態による、アプリケーションに対する比較のための性能測定および報告の方法を示す図である。
【発明を実施するための形態】
【０００９】
性能測定および報告のためのシステムおよび方法が、本明細書で説明される。システムおよび方法は、様々なコンピューティングシステムで実施されうる。説明される方法を実施することができるコンピューティングシステムは、限定はされないが、メインフレームコンピュータ、ワークステーション、パーソナルコンピュータ、デスクトップコンピュータ、ミニコンピュータ、サーバ、マルチプロセッサシステム、ラップトップなどを含む。
【００１０】
ソフトウェアプリケーションの性能測定は、品質保証を含む様々な理由で行われ、アプリケーションが、商用上の、機能的な要件および技術的な要件を満たし、期待通りに動作することを検証するために、行われる。以下、ソフトウェアアプリケーションは、アプリケーションと交換可能に呼ばれている。性能測定は、アプリケーションの開発、テスト、プロファイル、およびモニタリングの間を含む、アプリケーションのライフサイクルの任意の段階で行われうる。一般に、性能は、プロセッサ利用度、メモリ利用度、ネットワーク利用度、入出力利用度、データベースクエリの統計値、応答時間に関する統計値、セッションに関する統計値、スループットの統計値、プロセスのスレッドの統計値、キューに関する統計値のような、様々な性能パラメータに基づいて測定される。これは、性能パラメータを示すために列挙したものであり、網羅的であることは意図されていないことが理解されるだろう。
【００１１】
性能測定を行うユーザは、次いで、測定結果を分析し、例えば、性能パラメータが事前に規定された範囲を超えているまたは下回っている場合、アプリケーション開発チームに提案をすることができる。提案は、例えば、アプリケーションまたはハードウェアまたはランタイム条件に関連しうる。このため、性能パラメータは通常、画面のスナップショットとして記録され、提案は、独立したテキストまたはスプレッドシートの文書として提供される。性能測定の結果およびユーザの提案に基づいて、事前に規定された許容範囲を満たすように、適切な行動がとられうる。
【００１２】
場合によっては、ある性能パラメータを改善するためにとられる行動は、別の性能パラメータに関してアプリケーションの性能を低下させうる。例えば、アプリケーションの応答時間を改善しようとして、アプリケーションのメモリ利用度が上がっていることがある。したがって、アプリケーションは異なるセッションで再びプロファイリングすることができ、様々な性能パラメータの測定結果を記録することができ、必要ならば、さらなる修正のための提案を提供することができる。プロファイリングのセッションは、アプリケーションの性能が測定される期間を指すことが理解されるだろう。アプリケーションの性能を測定し、提案を行うこのサイクルは、通常、アプリケーションの性能パラメータが事前に規定された許容可能な範囲に収まるまで、反復的に継続する。
【００１３】
上で述べられたように、従来、性能測定の後に行われた提案は、体系的に記録または保存されておらず、後の段階で性能の問題を診断することが難しくなっている。さらに、2つのプロファイリングのセッションのアプリケーションの性能を比較するには、画面のスナップショットを手動で比較しなければならない。プロファイリングのセッションは、アプリケーションのバージョン、ハードウェア設定、ランタイム条件、セッションのタイミングおよびセッションの期間のような、様々な面で異なりうる。セッションのタイミングは、アプリケーションの実行中に、プロファイリングのセッションが行われる時間を指すのに用いられる。例えば、プロファイリングのセッションは、アプリケーションが実行を開始したばかりの時に、またはアプリケーションが所与の時間実行された後に、行われうる。セッションの期間は、プロファイリングのセッションが行われる期間を指すのに用いられる。本明細書で論じられるように、異なるプロファイリングのセッションに対する性能測定結果が異なる理由は複数ありうるので、手動で性能の問題を分析することは難しくなる。
【００１４】
例えば、2つのプロファイリングのセッションの結果が比較され、プロファイリングのセッションが異なるバージョンのソフトウェアアプリケーションの性能測定に対応する場合を考える。ソフトウェアの第11版において、メモリ利用度に関する性能の問題がある場合、その性能の問題がどの前のバージョンに由来しうるか、問題に対してとられた行動は何だったかなどを分析することは難しいであろう。上の例では、第3版におけるプロセッサ利用度の最適化が、メモリ利用度の増加の根本的な原因であった可能性があり、後のバージョンでの様々な最適化によって、第11版においてメモリ利用度が事前に規定された許容可能な範囲を超えた可能性がある。
【００１５】
性能測定の従来のシステムおよび方法を用いると、2つ以上のプロファイリングのセッションの性能測定結果を同時に比較する直接的な方法がないため、アプリケーションにおける性能の問題の原因を突き止めるのは、非常に難しく面倒であろう。さらに、提案およびとられた対応する行動についての文書が存在しない中では、性能の問題の原因を決定することは難しくなる。
【００１６】
別の例では、アプリケーションの性能は、セッションのタイミング、すなわち、プロファイリングのセッションが発生し、測定が行われた時間に基づいて、変化しうる。例えば、アプリケーションが高速データ復旧のためのキャッシュ技術を用いる場合、アプリケーションの性能は、キャッシュにデータが追加されるにしたがって時間とともに変化し、アプリケーションがある時間だけ実行されると、安定状態に達する。そのような場合、セッションのタイミングが異なる2つのプロファイリングのセッションの性能測定結果を比較するには、面倒な手動での比較も必要になる。
【００１７】
さらに別の例では、アプリケーションの性能は、性能が測定されるランタイム条件により変化しうる。例えば、性能は、使用される動作環境、入力データのサイズ、実行される反復の回数などに基づいて、変化しうる。そのような状況では、ランタイム条件が異なる複数のセッションにわたって性能測定結果を手動で比較することは、やはり面倒である。
【００１８】
本主題では、アプリケーションの性能測定および報告のシステムおよび方法が提案される。性能測定および報告の提案されるシステムのある実施形態では、システムは、様々な関係者のようなユーザが、ソフトウェアアプリケーションの個々のセグメントに対するコメントおよび提案を記録し、コメントを対応するセグメントと関連付けるための、設備を有する。システムはまた、ユーザからのコメントを含む、まとめの測定結果および分析報告を、様々なファイル形式で生成するように構成される。これらの測定結果および報告は、アプリケーションの他の関係者により用いられうる。さらに、アプリケーションの性能を変えるためまたは改善するために、記録された提言に基づいて、様々な行動をとることができる。
【００１９】
ある実装形態では、システムはまた、異なるプロファイリングのセッションにわたる性能パラメータの比較を容易にする。例えば、システムは、第1のセッションでプロファイリングされる第1のアプリケーションと、第2のセッションでプロファイリングされる第2のアプリケーションとに共通のセグメントを識別し、共通のセグメントに対応する性能のパラメータを比較し、比較の報告を生成する。第1のアプリケーションおよび第2のアプリケーションは、同じバージョンのアプリケーションまたは異なるバージョンのアプリケーションでありうることが理解されるだろう。同様に、第1のプロファイリングのセッションおよび第2のプロファイリングのセッションは、例えば、ハードウェア構成またはランタイム条件の設定が同じであってもよく、設定が異なっていてもよい。比較の報告は、セグメント実行回数、全体の累積応答時間、共通のセグメントの平均応答時間のようなパラメータを含みうる。そうして、システムは、2つ以上のセッションの測定結果を同時に比較することを容易にし、ソフトウェアアプリケーションの性能の問題の原因を診断するのを支援する。
【００２０】
性能測定および報告のシステムおよび方法の態様は、任意の数の異なるコンピューティングシステム、環境、および/または構成で実施することができ、実施形態が、以下の例のシステムアーキテクチャに関して説明される。
【００２１】
例示的なシステム
図1は、本主題のある実施形態による、アプリケーションの性能測定のための性能測定および報告システム102を示す。以下では、性能測定および報告システム102は、PMRシステム102とも呼ばれる。PMRシステム102は、サーバ、デスクトップパーソナルコンピュータ、ノートブック、ポータブルコンピュータ、ワークステーション、メインフレームコンピュータ、モバイルコンピューティングデバイス、またはラップトップを含む、様々な従来のコンピューティングデバイスのいずれとしても実装されうる。
【００２２】
前記の実施形態では、PMRシステム102は、1つまたは複数のプロセッサ104、入力/出力(I/O)インターフェース106、ネットワークインターフェース108、およびプロセッサ104に結合されたメモリ110を含む。プロセッサ104は、1つまたは複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、中央演算処理装置、ステートマシン、論理回路、および/または動作命令に基づいて信号を操作する任意のデバイスとして実装されうる。他の能力としては、プロセッサ104は、メモリ110に保存されたコンピュータ可読命令およびデータを、フェッチして実行するように構成される。
【００２３】
I/Oインターフェース106は、様々なソフトウェアインターフェースおよびハードウェアインターフェース、例えば、ディスプレイユニット、キーボード、マウス、外部メモリ、プリンタなどのような周辺機器のためのインターフェースを含みうる。ネットワークインターフェース108は、PMRシステム102が、ウェブサーバ、外部データベースのような他のコンピューティングデバイスおよび周辺機器と、ネットワークを通じて通信することを可能にしうる。ネットワークインターフェース108は、有線ネットワーク、例えばLAN、ケーブルなど、および/またはワイヤレスネットワーク、例えばWLAN、セルラー、衛星などのような、多種多様なプロトコルおよびネットワーク内での複数の通信を容易にすることができる。
【００２４】
一実装形態では、PMRシステム102は、複数の職場のパーソナルコンピュータ、ラップトップ、ブレードサーバのような様々なサーバ、データベースおよび他のコンピューティングデバイスを含む、公開のネットワークまたは企業のネットワークに接続されうる。別の実装形態では、PMRシステム102は、限定された数のパーソナルコンピュータおよびラップトップを有する非公開のネットワークまたは家庭のネットワークに接続されうる。さらに別の実装形態では、PMRシステム102は、スタンドアロンのシステムであってよい。
【００２５】
メモリ110は、例えば、スタティックランダムアクセスメモリ(SRAM)もしくはダイナミックランダムアクセスメモリ(DRAM)のような揮発性メモリ、および/または読み取り専用メモリ(ROM)、消去可能なプログラマブルROM、フラッシュメモリ、ハードディスク、光ディスク、もしくは磁気テープのような非揮発性メモリを含む、当技術分野で知られている任意のコンピュータ可読媒体を含みうる。メモリ110は、プログラムモジュール112およびプログラムデータ114を含む。
【００２６】
プログラムモジュール112は、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み、これらは、特定のタスクを実行し、または特定の抽象データ型を実装する。プログラムモジュール112はさらに、プロファイリングモジュール116、報告モジュール118、比較モジュール120および他のモジュール122を含む。他のモジュール122は、PMRシステム102上のアプリケーションおよび機能、例えばオペレーティングシステム内のプログラムを補う、プログラムまたは符号化された命令を含みうる。
【００２７】
プログラムデータ114は、とりわけ、プログラムモジュール112の1つまたは複数により処理され、受け取られ、生成されたデータを保存するための、リポジトリとしての役割を果たす。プログラムデータ114は、性能データ124、報告データ126、比較データ128、および他のデータ130を含む。他のデータ130は、他のモジュール122のような、プログラムモジュール112中の1つまたは複数のモジュールの実行の結果として生成されるデータを含みうる。加えて、以下で説明されるように、プログラムデータ114は、アプリケーション132-1…132-nを含みうる。
【００２８】
動作中、プロファイリングモジュール116は、性能測定のために、アプリケーション132とまとめて呼ばれるアプリケーション132-1、132-2、…132-nの1つまたは複数にアクセスすることができる。プロファイリングモジュール116は、コンパクトディスク(CD)ドライブのようなI/Oインターフェース106を通じてアプリケーション132を受け取ることができ、またはアプリケーション132は、ネットワークを通じて、またはプログラムデータ114からアクセスされうる。例示のために、アプリケーション132は、プログラムデータ114に保存されるものとして示されてきた。しかし、代替的に、アプリケーションは、プログラムモジュール112の一部であってもよく、または外部の記憶デバイスまたは他のコンピューティングデバイス上にホストされてもよいことが、理解されるだろう。
【００２９】
一実装形態では、プロファイリングモジュール116は、性能測定および報告のために、アプリケーション、例えばアプリケーション132-1にアクセスする。アプリケーション132-1は、方法、手順、機能、およびコードの別の部分のような、複数のセグメントを通常含む。プロファイリングモジュール116は、次いで、プロファイリングのセッション、例えば第1のプロファイリングのセッションの中のアプリケーション132-1をプロファイリングする。プロファイリングのセッションは、アプリケーションの性能が測定される期間を指すことが理解されるだろう。
【００３０】
アプリケーション132-1をプロファイリングするために、プロファイリングモジュール116は、様々な条件でアプリケーション132-1を実行し、第1のプロファイリングのセッションで実行されるセグメントの性能パラメータを測定し、パラメータのデータセットを取得する。性能パラメータは、CPUの統計値、メモリの統計値、ネットワークの統計値、I/Oの統計値、データベースクエリの統計値、応答時間の統計値、セッションに関する統計値、スループットの統計値、スレッドの統計値、システムプロセスに関する統計値、キューに関する統計値のような、1つまたは複数の計量を含みうる。これは、性能パラメータを示すために列挙したものであり、網羅的または限定的であることは意図されないことが理解されるだろう。プロファイリングモジュール116は、性能データ124中のアプリケーション132-1の異なるセグメントに対応する、測定されたパラメータのデータセットを保存することができる。
【００３１】
測定モジュール118は、次いで、異なるセグメントに対するパラメータのデータセットの概要を提供する、セッション報告を生成する。例えば、セッション報告は、セグメント実行回数、累積応答時間、各セグメントの平均応答時間などを含みうる。セッション報告は、報告データ126に保存されうる。
【００３２】
さらに、報告モジュール118は、ユーザインターフェース、例えばディスプレイ機器を通じて、ユーザにセッション報告を提供する。別の場合では、報告モジュール118は、出力ファイルとして、または、PDF(portable document format)、スプレッドシート、表形式、グラフ、またはユーザにより定義される任意の形式のような、任意の他の形式で、セッション報告を提供することもできる。さらに別の場合には、セッション報告において、報告モジュール118は、1つまたは複数の性能パラメータが事前に規定された範囲の外にあるセグメントを示すために、強調をするか、または任意の他の技術を用いることができる。事前に規定された範囲は、例えば性能データ124内に事前に保存されていてもよく、または、例えばプロファイリングの前に、ユーザにより入力されてもよい。事前に規定された範囲は、プロファイリングされているアプリケーションおよびアプリケーションの技術的な仕様に基づいて、セッションによって変わりうることが理解されるだろう。
【００３３】
セッション報告がユーザに提供されると、報告モジュール118は、ユーザに、アプリケーション132-1のセグメントの1つまたは複数の性能を変えるために、または改善するために、コメントまたは提言を提供することを促すことができる。コメントは、ハードウェア設定、ランタイム条件、第1のアプリケーションの一部、セッションのタイミング、セッションの期間のうちの1つまたは複数に関連しうる。
【００３４】
I/Oインターフェース106を通じてユーザにより入力されたコメントは、対応するセグメントと関連付けられ、性能データ124にパラメータのデータセットとともに保存される。一実装形態では、複数のユーザが、同じセッション報告にコメントを提供することができ、様々なコメントが、パラメータのデータセットとともに保存されうる。そのような場合、様々なユーザにより提供されるコメントを、例えば、ユーザ名、カラーコードなどを用いてマークすることもできる。さらに、ユーザから受け取られたコメントは、ユーザ名およびネットワークIDのような特徴に基づいて、視覚的に区別されうる。報告モジュール118は、次いで、パラメータのデータセットと記録されたコメントの両方を含む、まとめの報告を生成する。まとめの報告は、報告データ126にも保存され、次いで、例えば、アプリケーション132-1について作業するアプリケーション開発チームにより、用いられうる。
【００３５】
セッション報告およびユーザコメントに基づいて、とられるべき様々な行動が、例えば、アプリケーション132-1のコードと、ハードウェア設定と、ランタイム条件と、セッションのタイミングと、セッションの期間とに関連する行動について決定されうる。そして、アプリケーションは再び、プロファイリングのために、例えばアプリケーション132-2のように送信される。アプリケーション132-2は、同じバージョンのアプリケーション132-1であっても、異なるバージョンのアプリケーション132-1であってもよいことが理解されるだろう。プロファイリングモジュール116は、再び、第2のセッションにおいてアプリケーション132-2をプロファイリングし、前で説明されたように、第2のパラメータのデータセットを生成する。決定された行動に基づいて、第2のプロファイリングのセッションは、第1のプロファイリングのセッションと、ハードウェア設定、ランタイム条件、セッションのタイミングおよびセッションの期間のうちの1つまたは複数が異なっていてもよい。さらに、前述のように、報告モジュール118は、セッションの報告と、必要であれば、アプリケーション132-2のためのユーザのコメントを含むまとめの報告を生成することができる。プロファイリングを行い行動をとるという、このプロセスは、アプリケーションの性能が規定された要件に適合するまで反復的に行われうる。
【００３６】
一実装形態では、ユーザは、2つのアプリケーション132-1および132-2のプロファイリングの間に、2つのプロファイリングのセッションで生成されるパラメータのデータセットを直接比較することを選ぶことができる。この場合、比較モジュール120は、アプリケーション132-1および132-2に共通のセグメントを識別し、共通のセグメントのパラメータのデータセットを比較する。そして、報告モジュール118は、比較されたパラメータのデータセットに基づいて、共通のセグメントの比較の報告を生成する。
【００３７】
さらに、報告モジュール118は、好ましくない、または他と比較して1つのセッションが変化した、パラメータのデータセットの部分を選択的に強調することができる。例えば、アプリケーション132-1に対応する第1のセッションは、アプリケーション132-2に対応する第2のセッションよりもメモリ使用量が多いことがあるが、応答時間は短いことがある。したがって、比較の報告では、報告モジュール118は、第1のセッションのメモリ使用量の統計値と、第2のセッションの応答時間の統計値とを、ユーザが参照できるように、強調することができる。
【００３８】
別の実装形態では、ユーザは、複数のセッションからのプロファイリング結果を比較することを選ぶことができ、この複数のセッションは、異なるバージョンのアプリケーション、異なるハードウェア設定、異なるランタイム条件、異なるセッションのタイミング、異なるセッションの期間、またはこれらの組み合わせの、プロファイリングに対応しうる。ある場合には、比較モジュール120は、複数のセッションでプロファイリングされたアプリケーションにわたって共通のセグメントを識別し、共通のセグメントのパラメータのデータセットを比較する。別の場合には、比較モジュール120は共通のセグメントを識別し、どの共通のセグメントが比較されなければならないかを示すように、ユーザに促す。そして、比較モジュール120は、示された共通のセグメントのパラメータのデータセットを比較する。
【００３９】
比較モジュール120がパラメータのデータセットを比較すると、報告モジュール118は、上で論じられたのと同様の方法で、比較の報告を生成することができる。比較の報告はまた、比較用のグラフと、複数のセッションにわたって改善した、悪化した、または変化したパラメータのデータセットの一部を選択的に強調することとを含みうる。一実装形態では、比較の報告はまた、ユーザが、パラメータのデータセットの変化をアプリケーションのメモリ使用量と関連付けられるように、メモリのグラフを含みうる。さらに、複数のセッションのうちの1つまたは複数がプロファイリングモジュール116によって前にプロファイリングされ、ユーザのコメントが記録された場合、比較の報告は、前のセッションの1つまたは複数の共通のセグメントと関連付けられた、コメントを含みうる。したがって、ユーザは、複数のセッションからプロファイリングの結果を直接比較し、前のコメントについて調査し、複数のセッションにわたってとられた様々な行動の効果を分析することができる。
【００４０】
図2は、本主題のある実装形態による、性能測定および報告のための方法200を例示する。図3は、本主題の別の実装形態による、比較のための性能測定および報告の方法を例示する。
【００４１】
方法200および300は、全般にコンピュータ実行可能命令に関連して説明されうる。一般に、コンピュータ実行可能命令は、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、プロシージャ、モジュール、関数などを含んでもよく、これらは、特定の機能を実行し、または特定の抽象データ型を実装する。方法はまた、通信ネットワークを介して接続された遠隔の処理デバイスによって機能が実行される、分散型のコンピューティング環境においても実行されうる。分散型のコンピューティング環境では、コンピュータ実行可能命令は、メモリ記憶デバイスを含む、ローカルのコンピュータ記憶媒体と遠隔のコンピュータ記憶媒体の両方に存在しうる。
【００４２】
方法が説明される順序は、限定するものとして解釈されることを意図しておらず、任意の数の説明される方法のブロックが、任意の順序で組み合わされ、方法または代替的な方法を実施することができる。加えて、本明細書で説明される主題の趣旨および範囲から逸脱することなく、個々のブロックが方法から削除されうる。さらに、方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせで実施されうる。
【００４３】
方法200について述べると、ブロック202において、アプリケーションの性能が、プロファイリングのセッションにおいてプロファイリングされ、パラメータのデータセットが生成される。例えば、プロファイリングモジュール116は、アプリケーション132-1の様々なセグメントを実行し、様々な条件で性能パラメータを測定してパラメータのデータセットを取得することによって、アプリケーション132-1の性能をプロファイリングすることができる。性能パラメータは、CPUの統計値、メモリの統計値、ネットワークの統計値、I/Oの統計値、データベースクエリの統計値、応答時間の統計値、セッションに関する統計値、スループットの統計値、スレッドの統計値、システムプロセスに関する統計値、およびキューに関する統計値のような、計量を含みうる。
【００４４】
ブロック204において、パラメータのデータセットがまとめられ、セッション報告が生成される。一実装形態において、報告モジュール118は、アプリケーション132-1内の様々なセグメントおよび対応する性能パラメータ、例えば、回数、全体の応答時間、平均応答時間、最大応答時間、および他の統計値に言及する、セッション報告を生成する。報告モジュール118はまた、性能パラメータの1つまたは複数が事前に規定された許容可能な範囲の外にある、セグメントを強調してもよい。
【００４５】
ブロック206において、例えば、アプリケーション中の1つまたは複数のセグメントを修正することによって、またはハードウェア設定、ランタイム条件、セッションのタイミング、もしくはセッションの期間を変えることによって、性能測定を改善するための、ユーザのコメントが受け取られる。例えば、報告モジュール118は、コメントを提供するようにユーザに促すことができ、例えばキーボードを介して、入力を受け取ることができる。
【００４６】
ブロック208において、ユーザのコメントは、対応するセグメントと関連付けられる。一実装形態では、報告モジュール118は、ユーザのコメントを対応するセグメントと関連付け、関連付けられたコメントを性能データ124に保存する。
【００４７】
ブロック210において、まとめの性能報告が生成され、この性能報告は、様々なセグメントに関連するパラメータのデータセットと、ユーザのコメントとの両方を含む。このまとめの報告は、ソフトウェア開発者、データベース管理者、プロジェクトリーダーなどのような、様々な関係者により用いられうる。このまとめの報告は、報告モジュール118により生成されうる。
【００４８】
さらに、複数のセッション、すなわち2つ以上のセッションの性能の計量は、例えば方法300の実装形態で示されるように、直接比較されうる。
【００４９】
ブロック302において、パラメータのデータセットは、アプリケーションの2つ以上のプロファイリングのセッションから受け取られる。一実装形態では、プロファイリングモジュール116は、「n」個のセッションを作成し、「n」個のセッションのためのパラメータのデータセットを生成することができる。「n」個のセッションは、異なるバージョンのアプリケーション、異なるハードウェア設定、異なるランタイム条件、異なるセッションのタイミング、異なるセッションの期間、またはこれらの組み合わせの、プロファイリングに対応しうる。
【００５０】
ブロック304において、複数のセッションでプロファイリングされた複数のアプリケーションに共通のセグメントが識別され、共通のセグメントのパラメータのデータセットが比較される。一実装形態では、比較モジュール120は、共通のセグメントを識別する。
【００５１】
ブロック306において、比較の報告が、共通のセグメントの1つまたは複数に対応するパラメータのデータセットを用いて、生成される。例えば、報告モジュール118は、ユーザに、共通のセグメントおよび/またはパラメータの1つまたは複数を比較のために選択するように、促すことができる。報告モジュール118は、次いで、選択されたセグメントのための比較の報告を生成することができ、この比較の報告は、比較用のグラフと、複数のセッションにわたって変化したパラメータの選択的な強調とを含みうる。この比較の報告はまた、ユーザが、パラメータのデータセットの変化をアプリケーションのメモリ使用量と関連付けられるように、メモリのグラフを含みうる。さらに、ユーザのコメントが複数のセッションの1つまたは複数について記録された場合、比較の報告は、選択されたセグメントに関連するコメントを含みうる。
【００５２】
したがって、ある期間にわたるアプリケーションにおける性能の変化を、効果的に追跡して分析することもできるので、商用関連の様々な技術的な要件および機能的な要件を満たす、効率的なソフトウェアアプリケーションの作成および納入に役立つ。
【００５３】
性能測定および報告の実施形態が、構造的な特徴および/または方法に特有の用語で説明されてきたが、本発明は、説明された特定の特徴また方法に必ずしも限定されないことを理解されたい。むしろ、特定の特徴および方法は、性能測定および報告のシステムおよび方法の、例示的な実装形態として開示される。
【符号の説明】
【００５４】
102  性能測定および報告システム
104  1つまたは複数のプロセッサ
106  入力/出力インターフェース
108  ネットワークインターフェース
110  メモリ
112  プログラムモジュール
114  プログラムデータ
116  プロファイリングモジュール
118  報告モジュール
120  比較モジュール
122  他のモジュール
124  性能データ
126  報告データ
128  比較データ
130  他のデータ
132  アプリケーション
【図１】
2013030151.tif 000003
【図２】
2013030151.tif 000004
【図３】
2013030151.tif 000005
【外国語明細書】
2013030151.tif 000006
2013030151.tif 000007
2013030151.tif 000008
2013030151.tif 000009
2013030151.tif 000010
2013030151.tif 000011
2013030151.tif 000012
2013030151.tif 000013
2013030151.tif 000014
2013030151.tif 000015
2013030151.tif 000016
2013030151.tif 000017
2013030151.tif 000018
2013030151.tif 000019
2013030151.tif 000020
2013030151.tif 000021
2013030151.tif 000022
2013030151.tif 000023
2013030151.tif 000024
2013030151.tif 000025