2014/07/08 rev. 1 - xlsoft.com¥public¥documents¥aqtime 8 samples...

40
エクセルソフト株式会社 2014/07/08 Rev. 1.02

Upload: others

Post on 05-Apr-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

エクセルソフト株式会社

2014/07/08

Rev. 1.02

Page 2: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 2

はじめに

SmartBear AQtime Pro は、C++ や VB、.NET、Delphi、C++ Builder、Java などの幅広いアプリケー

ションに対応した性能解析ツールです。

パフォーマンスのボトルネックの検出や、メモリー/リソース リークの検出、コードカバレッジの測定

が行え、アプリケーションの品質向上や、テストの効率化に役立ちます。

AQtime Pro は、GUI ベースのアプリケーションで、スタンドアロンのアプリケーションとして提供さ

れているほか、Microsoft Visual Studio や、Embarcadero RAD Studio の IDE に統合して、スタンドア

ロン版と同等の機能を使用できます。

本スタートガイドは、AQtime Pro を初めて利用される方を対象に作成しております。

GUI の説明および操作方法、各プロファイラーの使用方法について、サンプルを元に説明しています。

なお、サンプルを用いたプロファイリング結果について、必ずしも同じ結果になるとは限りませんの

で、予めご了承ください。

AQtime Pro の評価版は、製品版と同等の機能が提供されており、アクティベーション (キーの登録作

業後) から 14 日間ご使用いただけます。

サンプルもすべて含まれていますので、本スタートガイドを参考にお試しください。

すべての SmartBear の製品名は、SmartBear Software の商標または登録商標です。

その他記載の商標、サービス マーク、商品名は各社の商標または登録商標です。

Page 3: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 3

目次

GUI の説明 ..................................................................................................... 4

■ プロファイリング設定時 ............................................................................................................... 4

■ リザルト閲覧時 .............................................................................................................................. 5

アロケーション プロファイラー チュートリアル .......................................... 6

■ アロケーション プロファイラーについて .................................................................................... 6

■ サンプル アプリケーションについて ........................................................................................... 6

■ サンプル アプリケーションを使用したプロファイリング方法 ................................................... 7

■ アロケーション プロファイラーのリザルトについて................................................................ 10

カバレッジ プロファイラー チュートリアル ............................................... 14

■ カバレッジ プロファイラーについて ......................................................................................... 14

■ サンプル アプリケーションについて ......................................................................................... 14

■ サンプル アプリケーションを使用したプロファイリング方法 ................................................. 15

■ カバレッジ プロファイラーのリザルトについて ....................................................................... 17

パフォーマンス プロファイラー チュートリアル ........................................ 23

■ パフォーマンス プロファイラーについて .................................................................................. 23

■ サンプル アプリケーションについて ......................................................................................... 23

■ サンプル アプリケーションを使用したプロファイリング方法 ................................................. 23

■ パフォーマンス プロファイラーのリザルトについて................................................................ 26

■ リザルトの比較方法について ...................................................................................................... 32

IDE (統合開発環境) への統合について ......................................................... 35

■ 対応する IDE のバージョンについて ........................................................................................ 35

■ 対応するアプリケーションの種類について ................................................................................ 35

AQtime Pro 利用上の注意点 ........................................................................ 38

■ CPU の制限について .................................................................................................................. 38

テクニカルサポートとビデオについて .......................................................... 40

Page 4: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 4

GUI の説明

■ プロファイリング設定時

① プロファイリングの設定に関するメニューや、実行ボタンなどが配置されています。

② Setup パネルでは、プロファイリング対象のアプリケーションの追加/削除が行えます。

③ プロファイリングの対象 (アプリケーションの種類や、ルーチンレベル/ラインレベルなど) を設定

できます。※ プロファイラーの種類によって表示が異なります。

② ③

Page 5: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 5

■ リザルト閲覧時

④ リザルトがツリー形式で表示されます。

⑤ Summary パネルでは、リザルトの要約が表示され、Report パネルでは、詳細が表示されます。

⑥ ソースコード、コールグラフ、コールツリーなど、Report パネル内で選択された行に関する情報

が表示されます。

④ ⑤

Page 6: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 6

アロケーション プロファイラー チュートリアル

■ アロケーション プロファイラーについて

アロケーション プロファイラーは、プロファイル対象のアプリケーションのオブジェクト (クラスのイ

ンスタンス) とメモリー ブロックをモニターします。

アプリケーションを終了した後に、割り当てられたメモリー ブロックまたはオブジェクトがメモリー

内に残っているかを検出します。

さらに、オブジェクト間の参照をトレースし、特定のインスタンスが作成された時、あるいは特定のメ

モリー ブロックが割り当てられた時、実行された関数呼び出しのスタックを示すことができます。

.NET ランタイムはアプリケーションが終了した時、自動的にすべてのオブジェクトを解放しますが、

アロケーション プロファイラーは、アプリケーション実行中メモリー上のインスタンス数を解析する

際に役に立ちます。

これはオブジェクトや予期されるようなメモリーブロックを解放する場合に、アプリケーションがどの

ようにメモリーを使用しているかをトレースするのに役立ちます。

このチュートリアルでは、アプリケーションの解析にあたり、アロケーション プロファイラーの使用

方法について説明します。

■ サンプル アプリケーションについて

製品および評価版に付属しているサンプルを使用して、アロケーション プロファイラーの使用方法を

説明します。

このチュートリアルでは、用意された Boxing サンプル アプリケーションを使用した例を紹介しま

す。

<サンプルについて>

マネージドコード:

Microsoft Visual Studio 2005 プロジェクト

<AQtime Samples>¥Managed¥VS2005¥Allocation¥Boxing¥CS - Microsoft Visual C# .NET

<AQtime Samples>¥Managed¥VS2005¥Allocation¥Boxing¥VC - Microsoft Visual C++ .NET

Page 7: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 7

<AQtime Samples>¥Managed¥VS2005¥Allocation¥Boxing¥VB - Microsoft Visual Basic .NET

補足:

Visual Studio 2005 のサンプルは Visual Studio 2008、2010 および 2012 で開くことができます。

Microsoft Visual Studio .NET 7.x プロジェクト

<AQtime Samples>¥Managed¥VS.NET¥Allocation¥Boxing¥CS - Microsoft Visual C# .NET

<AQtime Samples>¥Managed¥VS.NET¥Allocation¥Boxing¥VC - Microsoft Visual C++ .NET

<AQtime Samples>¥Managed¥VS.NET¥Allocation¥Boxing¥VB - Microsoft Visual Basic .NET

補足:

Windows Vista 以降では、AQtime のサンプルは、

<Users>¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。

その他のバージョンの Windows OS では、

<Documents and Settings>¥All Users¥Documents¥AQtime 8 Samples 以下に配置されます。

■ サンプル アプリケーションを使用したプロファイリング方法

AQtime を起動し、[File] – [New Project] から新しいプロジェクトを生成します。

Setup パネル内の Add Module ボタンをクリックし、プロファイル対象のアプリケーション (この場

合は Boxing.exe) を選択します。

ツールバーの [Select Profiler] のドロップダウン リストから、Allocation Profiler を選択します。

Page 8: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 8

All Project Modules by Classes の項目にチェックを入れ有効にし、Entire .NET Code by Classes

を無効にします。

Setup パネル内の Collect Stack Information ペインで、Entire .NET Code と Collect info about

lines にチェックを入れ、その他の項目のチェックは外します。

※ Java アプリケーションでは、Entire Java Code に、それ以外のアプリケーションでは、All

Project Modules にチェックを入れます。

ツールバーの [Run] ボタンをクリックして、プロファイリングを開始します。

Profiler Options ダイアログが表示され、いくつかのオプションを設定できます。

このダイアログの表示/非表示は、メニューバーの [Options] - [Options] - [General] - [Show Again

Flags] で設定できます。

このチュートリアルでは、標準の設定で進めます。

Page 9: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 9

AQtime がプロファイリング対象のアプリケーションを起動し、次のようなコンソール ウィンドウが表

示されます。

Boxing アプリケーションは、BoxedValues と、SimpleValues の 2 つのルーチンを含んでいます。

BoxedValues は、100 の構造体を生成し、ハッシュテーブルに保存します。SimpleValues は、また同

じ型の 100 の構造体を生成し、今度は配列に保存します。

Boxing.exe アプリケーションは、BoxedValues ルーチンを呼び出し、また、このルーチンが開始した

ことと、終了したことを知らせる 2 つのメッセージを表示します。

<メッセージ内容>

Starting BoxedValues...

BoxedValues finished. Press Enter...

続けて [Enter] キーを押します。

アプリケーションは、SimpleValues ルーチンを呼び出します。

<メッセージ内容>

Starting SimpleValues...

SimpleValues finished. Press Enter...

この状態で、AQtime のメニューバーの Get Results ボタン (下図参照) をクリックします。

AQtime はその時の状態からリザルトを作成します。

この情報は後でリザルトを解析する際に使用します。

アプリケーション (コンソールウィンドウ) に戻り、[Enter] キーを押下します。

アプリケーションは終了し、AQtime は再度リザルトを生成します。

Page 10: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 10

■ アロケーション プロファイラーのリザルトについて

アロケーション プロファイラーのリザルトでは、以下の 2 つのカテゴリーで構成されます。 (プロ

ファイラーの種類によって、リザルトに表示されるカテゴリーが異なります。)

・Class Data

・Object Data

Results パネルに 2 つのリザルトが追加されています。

ひとつのリザルトは、プロファイリング対象のアプリケーションが終了した際に生成され、もうひとつ

のリザルトは Get Results ボタンをクリックした際に生成されています。

プロファイリング対象のアプリケーションを閉じる際に生成されたリザルトには、メモリーリークした

オブジェクトはありません。 (Live Count が ”0” の状態)

マネージドコードのアプリケーションをプロファイリングする際に、CLR は、アプリケーションに

よって割り当てられたすべてのメモリーを解放するためです。

ここでは、Get Results ボタンをクリックした際に生成されたリザルトを使用し、実際にメモリーリー

クが発生したことを想定して、リザルトを確認してきます。

リザルトの生成時間を確認し、先に生成されたリザルトをダブルクリックしてください。

リザルトの見かたですが、Summary パネルには、リザルトの内容が要約されて表示されます。

Page 11: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 11

Report パネルには、実行時に生成されたクラスやオブジェクトの情報をはじめ、メモリーの使用量

や、メモリー内に存在するオブジェクトの数など、様々な詳細情報を確認できます。

Report パネルのコンテンツは、Explorer パネルで選択されたカテゴリーによって異なります。

Class Data カテゴリーが選択されている場合、Report パネルは、アプリケーションの実行時に生成さ

れたクラスのリストを表示します。

ここでは、Live Count カラムについて注目します。

Live Count カラムには、メモリー内にクラスのインスタンスが存在していることを示しています。

このスクリーンショットの例では、全体で、解放されていないオブジェクトが StructureType で 100、

TestClass と、StructureType[] で 1つずつの計 102 存在しています。

なお、クラス (例えば、StructureType) と、そのクラス (StructureType[]) のインスタンスの配列は、

AQtime では、別々のクラスとして扱われています。

次に、Report パネルの StructureType[] の行をクリックし、Call Tree パネルを選択してください。

Call Tree パネルでは、プロファイリングされたアプリケーションの関数の呼び出しパスを階層的に表

し、呼び出し関係を確認できます。

各ルーチンの Live Count や、該当するソース行 (Source Line) まで確認できます。

次に、Explorer パネルの、Objects カテゴリーを選択することで、メモリーが解放されていない個々

のオブジェクトの結果を表示することができます。

Page 12: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 12

ここで表示されているオブジェクトの情報から、コールスタックやソースコードを確認することができ

ます。

StructureType[] の行を選択し、Details パネルを選択します。

Details パネルの Call Stack ペインに表示されるルーチンをダブルクリックすることで、ソースコー

ドの対象行を表示させることができます。

ソースコードは以下のように Editor パネル内に表示されます。

※ ソースコードを表示するには、対象のアプリケーションがデバッグ情報付きでコンパイルされてい

る必要があります。

Page 13: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 13

Editor パネル内でソースコードを表示させるには、オプションの設定が必要となります。

メニューバーの [Options] – [Options] - [General] – [Search Directory] にソースコードの保存先を指

定します。

※ [Include Subdirectries] を有効にすることで、指定したディレクトリ配下のディレクトリも対象と

なります。

また、プロファイリングの設定で、Collect Stack Information の Routines only を選択した場合、

Details パネルでルーチンをクリックすることで、ソースコードの対象行を Editor パネルに表示する

ことができますが、Editor パネルにジャンプはしません。

Collect info about line を選択した場合は、Details パネルから、Editor パネルにジャンプできます。

このように、アロケーション プロファイラーを使用することで、メモリーリークが発生した箇所を特

定することが可能になります。

補足:

AQtime Pro 8.21 のアロケーション プロファイラーは、64bit 版の C++ Builder XE3 - XE6 には対応

していません。

Page 14: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 14

カバレッジ プロファイラー チュートリアル

■ カバレッジ プロファイラーについて

AQtime のカバレッジ プロファイラーは、アプリケーションの実行中にコールされたルーチンとソース

ファイルのコードカバレッジの割合を測定します。

この機能を使用することで、テスト内で実行されたコードと実行されていないコードを簡単に見つけだ

すことができます。

カバレッジ プロファイラーはルーチンとコードラインの 2 つのレベルで、アプリケーション (32bit

と 64bit の両方) を解析することができます。

AQtime がサポートしているコードカバレッジのレベルは、C0 レベルです。

コードカバレッジを測定することで、テストの網羅率の確認やプログラム内の使用されていないコード

の検出に役立ちます。

なお、ラインレベルでマネージド コードのルーチンをプロファイリングする場合、対象のアプリケー

ションはデバッグ情報付きでコンパイルされている必要があります。

■ サンプル アプリケーションについて

このチュートリアルでは、製品および、評価版に付属しているサンプルを使用して、カバレッジ プロ

ファイラーの使用方法を説明します。

<サンプルについて>

マネージド コード:

Microsoft Visual Studio 2005 プロジェクト

<AQtime Samples>¥Managed¥VS2005¥Coverage¥CS - Microsoft Visual C# .NET

<AQtime Samples>¥Managed¥VS2005¥Coverage¥VC - Microsoft Visual C++ .NET

<AQtime Samples>¥Managed¥VS2005¥Coverage¥VB - Microsoft Visual Basic .NET

補足:

Visual Studio 2005 のサンプルは Visual Studio 2008、2010 および 2012 で開くことができます。

Page 15: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 15

Microsoft Visual Studio .NET 7.x プロジェクト

<AQtime Samples>¥Managed¥VS.NET¥Coverage¥CS - Microsoft Visual C# .NET

<AQtime Samples>¥Managed¥VS.NET¥Coverage¥VC - Microsoft Visual C++ .NET

<AQtime Samples>¥Managed¥VS.NET¥Coverage¥VB - Microsoft Visual Basic .NET

アンマネージド コード:

<AQtime Samples>¥Unmanaged¥Coverage¥VB - Microsoft Visual Basic 6.0

<AQtime Samples>¥Unmanaged¥Coverage¥VC - Microsoft Visual C++ (Visual Studio 7.x project)

<AQtime Samples>¥Unmanaged¥Coverage¥VC2005 - Microsoft Visual C++ (Visual Studio 2005

project, can also be opened and compiled in Visual Studio 2008, 2010 and 2012)

<AQtime Samples>¥Unmanaged¥Coverage¥BCB - Borland C++Builder

<AQtime Samples>¥Unmanaged¥Coverage¥Delphi - Borland Delphi

<AQtime Samples>¥Unmanaged¥Coverage¥GCC - GNU CC

補足:

Windows Vista 以降では、AQtime のサンプルは、

<Users>¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。

その他のバージョンの Windows OS では、

<Documents and Settings>¥All Users¥Documents¥AQtime 8 Samples 以下に配置されます。

■ サンプル アプリケーションを使用したプロファイリング方法

AQtime を起動し、[File] – [New Project] から新しいプロジェクトを生成します。

Setup パネル内の Add Module ボタンをクリックし、プロファイル対象のアプリケーション (この場

合は Coverage.exe) を選択します。

Page 16: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 16

ツールバーの [Select Profiler] のドロップダウン リストから、Coverage Profiler を選択します。

Code to Profile で、All Project Modules にチェックを入れ、Collect info about lines のラジオボタ

ンをオンにします。

Coverage には、Coverage Profiler と、Light Coverage Profiler が存在しますが、Light Coverage

Profiler は、Coverage Profiler と比較して、収集する情報が少ないため、パフォーマンスに優れ、メモ

リーの使用量も抑えられます。

ただし、機能面では Coverage Profiler と比較して、以下の違いがあります。

・Hit Count / Block Count / Block Hit Count を取得しません。

・partially executed lines をトレースしません。

・スレッドからプロファイリング結果を取得しません。

※ 詳細な内容は製品のヘルプをご参照ください。

ツールバーの [Run] ボタンをクリックして、プロファイリングを開始します。

Profiler Options ダイアログが表示され、いくつかのオプションを設定できます。

このダイアログの表示/非表示は、メニューバーの [Options] - [Options] - [General] - [Show Again

Flags] で設定できます。このチュートリアルでは、標準の設定で進めます。

AQtime がプロファイリング対象のアプリケーションを起動しますので、Enter a number (1,2 or 3) の

Page 17: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 17

右側のテキストボックスに数字の 1 を入力して、[Execute] ボタンをクリックします。

“DoActionA procedure has been called” のメッセージボックスが表示されるので、[OK] ボタンをク

リックします。

続いて、テキストボックスに数字の 2 を入力し、[Execute] ボタンをクリックします。

“DoActionB procedure has been called” のメッセージボックスが表示されるので、[OK] ボタンをク

リックします。

[Close] ボタンをクリックし、アプリケーションを終了します。

■ カバレッジ プロファイラーのリザルトについて

アプリケーションを終了後、リザルトが表示されます。

Summary パネルでは、解析されたルーチンの数、実行されたルーチンの数をはじめ、呼び出された

ルーチンの総数、ルーチンと、ソースコード行のカバレッジ率が確認できます。

Page 18: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 18

カバレッジ プロファイリングのリザルトは以下の 3 つのカテゴリーで構成されます。

・Routines

・Modules

・Source Files

リザルトの各カテゴリー内には、スレッド毎にグループ分けされたリザルトが表示されます。プロファ

イラーは、Windows、CLR、COM スレッド向けのリザルトを収集します。

収集するスレッドの設定は、メニューバーの [Options] - [Options] - [Coverage] – [Profilers] -

[Coverage Profiler] – [Thread model] で設定できます。

次に Report パネルの内容を確認していきます。

Results パネル内の Routines 内のリザルトをダブルクリックすることで、Report パネル内に結果が

表示されます。

Report パネルに表示される項目は、以下の通りです。

Routine Name 実行されたルーチンの名前

Hit Count 実行された回数

Total Lines 含まれるソースコードの行数の総数

Lines Uncovered 実行されなかったソースコードの行数

% Covered ルーチンの実行された割合

Mark コードカバレッジの割合を、赤、黄、緑の色を用いて示しています。

Mark 以外の項目では、フィルタ機能を使用することができます。

各項目名をマウスオーバーすると、右側にフィルタのマークが表示されますので、こちらをクリックし

ます。

Page 19: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 19

必要な項目にチェックを入れてフィルタできるほか、(Custom…) を選択することで、フィルタの条件

を指定することが可能です。

または、メニューバーの Result Views では、大まかなフィルタを設定することができます。

フィルタの説明

Default フィルタなし

Routines covered less than

50%

コードカバレッジ率 50% 未満

Routines covered less than

90%

コードカバレッジ率 90% 未満

Routines covered less than

100%

コードカバレッジ率 100% 未満

Unexecuted routines only コードカバレッジ率 0%

Page 20: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 20

次に、任意のルーチン行を選択し、Details パネルを選択します。

Details パネルには、ルーチン内のソース行ごとのリザルトが表示されます。

(上記の例では、Total lines が 10 行のため、10 行分の情報を表示)

なお、カバレッジ プロファイラーのリザルトでは、以下のパネルが利用できます。

・Event View

・Disassembler

・Editor

・Details

Page 21: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 21

次に、Editor パネルを選択することで、選択されたルーチンに該当するソース行を表示することができ

ます。

※ ソースコードを表示するには、対象のアプリケーションがデバッグ情報付きでコンパイルされてい

る必要があります。

上記のスクリーンショットでは、Coverage.exe アプリケーションを操作した際に、数字の 3 を入力し

ていないため、CoverageTest ルーチンの DoActionC() が実行されていないことが分かります。

補足:

ソースコードが表示されない場合は、オプションの設定を確認してください。

メニューバーの [Options] - [Options] – [General] – [Search Directory] にソースコードの保存先を

指定します。

※ [Include Subdirectries] を有効にすることで、指定したディレクトリ配下のディレクトリも対象

となります。

Page 22: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 22

また、プロファイリングの設定で、Code to Profile の Routines only を選択した場合、ラインレベル

の情報は取得しないため、Editor パネル内に HitCount や Mark は表示されません。

また、Details パネルには情報は表示されません。

このように、カバレッジ プロファイラーは、実行した内容を元にカバレッジ率を測定しますので、テ

スト内容の網羅性やアプリケーションの不具合の確認を行う際に役立ちます。

なお、上記のサンプルのような小さなアプリケーションでは、初めから Coverage Profiler を利用する

ことをお勧めしますが、大きなアプリケーションに対してコードカバレッジを計測する際の効率の良い

方法としては、初めに Light Coverage Profiler を使用して測定を行い、問題のある個所を深く調査する

際に、該当箇所を限定して Coverage Profiler を使用することで、解析時間の短縮やメモリーなどのリ

ソースの消費を軽減することが可能です。

Page 23: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 23

パフォーマンス プロファイラー チュートリアル

■ パフォーマンス プロファイラーについて

AQtime のパフォーマンス プロファイラーは、C/C++、Delphi、.NET、Java、Silverlight などの幅広い

アプリケーションの 32bit と 64bit の両方に対応し、パフォーマンスのボトルネックを検出することが

できます。

ルーチンとすべての関係するサブルーチンの中で費やした時間と、ルーチンが実行された回数を計測

し、また他のルーチンから呼び出されたルーチンのログとコールツリーをトラックします。

さらに、パフォーマンス プロファイラーはルーチンのラインレベルを解析でき、実行回数 (Hit Count)

や実行時間の情報をソース行ごとに取得します。

このチュートリアルでは、パフォーマンス プロファイラーの使い方と解析方法を紹介します。

■ サンプル アプリケーションについて

製品および、評価版に付属しているサンプルを使用して、アロケーション プロファイラーの使用方法

を説明します。

このチュートリアルでは、用意された JuliaSet.exe サンプル アプリケーションを使用した例を紹介し

ます。 (<AQtime 8 Samples>¥Managed¥VS2005¥JuliaSet)

■ サンプル アプリケーションを使用したプロファイリング方法

AQtime を起動し、[File] – [New Project] から新しいプロジェクトを生成します。

Setup パネル内の Add Module ボタンをクリックし、プロファイル対象のアプリケーション (今回は

JuliaSet.exe) を選択します。

Page 24: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 24

ツールバーの [Select Profiler] のドロップダウン リストから、Performance Profiler を選択します。

Code to Profile で、All Project Modules にチェックを入れ、Routines only のラジオボタンをオン

にします。

ツールバーの [Run] ボタンをクリックします。

Page 25: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 25

Profiler Options のダイアログボックスが表示されますので、デフォルトの設定で [Run] ボタンをク

リックします。Active counter の項目で Elapsed Time が選択されていることを確認してください。

アプリケーションが起動しますので、設定は変更せずに [Draw] ボタンをクリックします。

以下のように、描画が完了した後に、アプリケーションを終了します。

アプリケーションを終了後、リザルトが表示されます。

Page 26: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 26

■ パフォーマンス プロファイラーのリザルトについて

パフォーマンス プロファイリングのリザルトは以下の 3 つのカテゴリーで構成されます。

・Routines

・Source Files

・Modules

Report パネルでは以下の項目について結果を確認できます。

Time サブルーチンの呼び出しを除く、ルーチンのコードの実行に費やされた合計時間

Time with

Children

サブルーチンを含むルーチンを呼び出すのに費やされた合計時間

Shared Time サブルーチンを含むルーチンを呼び出すのに費やされた合計時間の割合

(時間 / サブルーチンを含む時間) * 100

Hit Count 実行 (呼び出し) 回数

また、Performance Profiler のリザルトでは、以下のパネルが利用できます。

・Event View

・Disassembler

・Editor

・Details

・Call Graph

・Call Tree

Call Graph パネルでは、ルーチンの呼び出し関係を確認できます。

Page 27: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 27

また、Details パネルでは、上段に選択したルーチンの呼び出し元が表示され、下段に呼び出し先の割

合が表示されます。

※ グラフにマウスカーソルを当てることにより、ツールチップが表示されます。

次に、ボトルネックとなっているルーチンの解析方法を説明します。

今回は、ComplexNumber::get_SqrMod ルーチンを対象といたします。

Report パネルの対象のルーチンを右クリックし、[Add Selected to Setup] –[ Add to New Profiling

Area] を選択します。

Page 28: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 28

Add Profiling Area ダイアログが表示されますので、Name に任意の名前を入力し、Type の

Including のラジオボタンを選択し、Collect info about lines のチェックボックスをオンにして、

[OK] ボタンをクリックします。

Setup パネルに移動し、Code to Profile の All Project Modules の下に作成したプロファイリングエ

リアが追加されていることが確認できます。

この作業を行う目的は、ボトルネックとなる対象箇所を深く調査する際に、ソースのラインレベルで再

度解析を行いますが、アプリケーション全体を Collect info about lines の設定で解析する場合、多く

の時間を要する可能性があるため、該当するルーチンのみを上記の作業で対象のエリアとして設定し、

解析を行います。

Page 29: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 29

補足:

特定のモジュールやルーチンの解析を行いたい場合や、逆に特定のモジュールやルーチンは解析から

除外したい場合は、Setup パネルの Code to Profile 上で右クリックし、コンテキストメニューの

Add Profiling Area を追加し、対象のモジュールまたは、ルーチンをドラッグアンドドロップで追加

する方法もあります。 (追加の場合は、Type: Including を選択し、除外の場合は Type: Excluding

を選択します)

All Project Modules のチェックボックスをオフにして、[Run] ボタンをクリックして、再度解析を実

行します。

アプリケーションを終了後、リザルトが表示されますが、今回は先程選択したルーチンのみの解析結果

が表示されます。

Editor パネルでは、ソースコードの対象行が表示され、ボトルネックとなる箇所をソースレベルで特定

することができます。

※ ソースコードを表示するには、対象のアプリケーションがデバッグ情報付きでコンパイルされてい

る必要があります。

Page 30: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 30

補足:

ソースコードが表示されない場合は、オプションの設定を確認してください。

メニューバーの [Options] - [Options] – [General] – [Search Directory] にソースコードの保存先を

指定します。

※ [Include Subdirectories] を有効にすることで、指定したディレクトリ配下のディレクトリも対

象となります。

このアプリケーションのソースコードには、Faster と Slower の 2 つを用意していますので、

Microsoft Visual Studio でプロジェクトを開き、Slower をコメントアウトし、Faster を有効にし、プ

ロジェクトをリビルトします。

補足:

リビルト時に AQtime が以下のダイアログを表示します。AQtime は、ソースファイルを参照してい

るため、リビルトすると AQtime 内で選択しているアプリケーションのソースファイルが変更された

ことを検知し、再ロードするかを尋ねます。

[Yes] ボタンをクリックし、ソースファイルを再ロードします。

これにより、リビルトのたびにアプリケーションを選択し直す必要はありません。

Page 31: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 31

再度 AQtime のプロファイリングを実行し、リザルトを確認します。

Slower の実行結果 (Time: 5.19) と比較して、Faster の実行結果は Time: 1.36 と、

実行時間が改善されたことが確認できます。

これはチュートリアル用の一例ですが、このように性能解析を行い、ボトルネックとなる箇所を確認

し、プログラムを修正後、再度解析を行うといった一連の流れをご確認いただけたかと思います。

Page 32: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 32

■ リザルトの比較方法について

比較対象のリザルトを選択し、右クリックのコンテキスト メニューから [Compare] を選択します。

※ リザルト名は分かりやすいように、Slower と Faster に変更しています。

Compare Settings ダイアログが表示されますので、比較対象の条件を設定します。

今回は、”Time” と “Time with Children”、”Time with Children の差分の割合” を確認します。

・Info Colum: Class Name と Routine Name にチェックを入れます。

・Compare: Time と Time with Children にチェックを入れます。

・Difference Style: Time with Children の参照ボタン (下図参照) をクリックします。

Page 33: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 33

Difference Style のダイアログでは上から 3つめのラジオボタンを有効にし、[OK] ボタンをクリック

します。

Report パネル内に比較結果が表示されます。

このように、リザルトから改善された割合などを確認することができます。

<その他のサンプルについて>

マネージド コード:

Microsoft Visual Studio 2005 プロジェクト

<AQtime Samples>¥Managed¥VS2005¥Performance¥CS - Microsoft Visual C# .NET

<AQtime Samples>¥Managed¥VS2005¥Performance¥JS - Microsoft Visual J# .NET

<AQtime Samples>¥Managed¥VS2005¥Performance¥VB - Microsoft Visual Basic .NET

<AQtime Samples>¥Managed¥VS2005¥Performance¥VC - Microsoft Visual C++ .NET

Page 34: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 34

補足:

Visual Studio 2005 のサンプルは Visual Studio 2008、2010 および 2012 で開くことができます。

Microsoft Visual Studio .NET 7.x プロジェクト

<AQtime Samples>¥Managed¥VS.NET¥Performance¥CS - Microsoft Visual C# .NET

<AQtime Samples>¥Managed¥VS.NET¥Performance¥VB - Microsoft Visual Basic .NET

<AQtime Samples>¥Managed¥VS.NET¥Performance¥JS - Microsoft Visual J# .NET

<AQtime Samples>¥Managed¥VS.NET¥Performance¥VC - Microsoft Visual C++ .NET

アンマネージド コード:

<AQtime Samples>¥Unmanaged¥Performance¥VC2005 - Microsoft Visual C++ (Visual Studio 2005

project, can also be opened and compiled in Visual Studio 2008, 2010 and 2012)

<AQtime Samples>¥Unmanaged¥Performance¥VC - Microsoft Visual C++ (Visual Studio 7.x project)

<AQtime Samples>¥Unmanaged¥Performance¥VB - Microsoft Visual Basic 6.0

<AQtime Samples>¥Unmanaged¥Performance¥Delphi - Borland Delphi

<AQtime Samples>¥Unmanaged¥Performance¥BCB - Borland C++Builder

<AQtime Samples>¥Unmanaged¥Performance¥GCC - GCC

補足:

Windows Vista 以降では、AQtime のサンプルは、

<Users>¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。

その他のバージョンの Windows OS では、

<Documents and Settings>¥All Users¥Documents¥AQtime 8 Samples 以下に配置されます。

Page 35: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 35

IDE (統合開発環境) への統合について

AQtime は、Microsoft Visual Studio と Embarcadero RAD Studio の IDE に統合して利用することが

できます。

AQtime は、単体のアプリケーションとしても提供されていますが、IDE に統合して利用する場合もフ

ル機能でご使用いただけます。

■ 対応する IDE のバージョンについて

・Microsoft Visual Studio 2002, 2003, 2005, 2008, 2010, 2012

・Embarcadero RAD Studio 2010, XE, XE2, XE3, XE4, XE5, XE6,

Borland Developer Studio 2006

■ 対応するアプリケーションの種類について

・Windows アプリケーション (Visual C++), Windows アプリケーション, DLL,

Windows サービス, IIS, ASP.NET, XBAP, Silverlight, COM, COM+, DCOM アプリケーションなど

・.NET アプリケーション (C#, Visual Basic .NET, マネージド Visual C++ など)

・Delphi および C++Builder アプリケーション (スタンドアロン アプリケーション, Windows サービ

ス, Web サービス, IDE パッケージ (.bpl), Control Panel applets (.cpl), COM, DCOM and COM+ アプリ

ケーションなど)

補足:

AQtime は、64bit アプリケーションもサポートしていますが、バージョン 8.21 のアロケーション

プロファイラーは、64bit 版の C++ Builder XE3 - XE6 には対応していません。

また、AQtime のプロジェクトに、32bit と 64bit のアプリケーションを混在させることはできませ

ん。32bit と 64bit の両方のアプリケーションをプロファイリングされる際は、それぞれプロジェク

トを分ける必要があります。

また、IDE に統合した場合、管理者権限を持つユーザーで実行する必要があります。

Page 36: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 36

Microsoft Visual Studio での統合例:

メニューバーに [AQtime] のメニューが追加され、ツールバーにも AQtime の操作アイコンが追加さ

れます。

プロファイリングのリザルトは Report パネルで表示され、AQtime の Editor パネルに表示される情

報は、IDE (この場合はMicrosoft Visual Studio) のエディター内に表示されます。

Page 37: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 37

補足:

製品版のフローティング ライセンスで使用する場合、ライセンスが消費されるタイミングは、IDE

の起動時ではなく、AQtime の機能を使用する際に消費されます。

Page 38: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 38

AQtime Pro 利用上の注意点

■ CPU の制限について

AQtime を利用する際に、いくつかのプロセッサーでは制限があります。

Intel Core i7, Intel Core 2 Duo, Intel Pentium II, Intel Pentium III, Intel Pentium M, AMD Phenom, AMD

Athlon XP and AMD Athlon 64 プロセッサーでは、以下の計測をサポートします。

・Elapsed Time

・User Time

・User+Kernel Time

・CPU Cache Misses

・CPU Mispredicted Branches

・Context Switches

・Hard Memory Page Faults

・Soft Memory Page Faults

・All Memory Page Faults

以下の計測はサポートされません。

・Split Load Replay

・Split Store Replay

・Blocked Store Forwards Replays

・64K Aliasing Conflicts

Mobile Intel Pentium 4 プロセッサーと AMD Opteron、AMD Turion プロセッサーでは、以下が計測で

きます。

・Elapsed Time

・Context Switches

・Hard Memory Page Faults

・Soft memory Page Faults

・Memory Page Faults

ハイパースレッディング テクノロジーを搭載する Intel Xeon と Intel Xeon MP マルチコア プロセッ

サーでは、以下をサポートします。

・Elapsed Time

・Context Switches

・Hard Memory Page Faults

・Soft Memory Page Faults

・All Memory Page Faults counters

Page 39: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 39

シングルコアの Intel Xeon と Intel Xeon MP プロセッサーでは、すべての計測がサポートされます。

また、Intel SpeedStep テクノロジーが搭載されたプロセッサーを使用される場合、プロファイリング

を開始する前に、Dynamic CPU Frequency Mode をオフにすることを推奨します。

この設定がオンの状態の場合、Elapsed Time, User Time, User+Kernel Time は正しい結果を計測しない

可能性があります。

注意:

AQtime を 64bit OS で使用する場合、Elapsed Time 以外の計測を行うときは、OS をデバッグモー

ドで起動する必要があります。

64bit 版の Windows XP、Windows Server 2003 SP1 またはそれ以降の 64bit 版の Windows OS に

は、Kernel Patch Protection (KPP) 機能が備わっています。

この機能により、Elapsed Time 以外の計測を行う場合、システムがクラッシュすることがありま

す。

Elapsed Time のみが適切に動作し、KPP と動作する際に問題を起こさないため、アプリケーション

の性能解析を行う際は、Elapsed Time のみを使用することを推奨します。

Elapsed Time 以外の計測を行う場合は、カーネル デバッグ モードで OS を実行することで、

AQtime のすべての計測機能を使用することができる可能性があります。

Page 40: 2014/07/08 Rev. 1 - XLsoft.com¥Public¥Documents¥AQtime 8 Samples フォルダー以下に配置されます。 その他のバージョンの Windows OS では、

Copyright © 1998-2014 XLsoft Corporation. All Rights Reserved. 各製品名は、各社の商標または登録商標です。 40

テクニカルサポートとビデオについて

・AQtime Pro に関する問い合わせは、以下のサイトの問い合わせフォームよりご質問いただけます。

エクセルソフト株式会社問い合わせフォーム:http://www.xlsoft.com/jp/qa/

・開発元の SmartBear 社のサイトでは、製品紹介や各機能のビデオ (英語) を紹介しています。

AQtime Screencasts and Videos: http://support.smartbear.com/screencasts/aqtime/