主な機能
※以下の画像はクリックで拡大表示、右上「×」または画像周囲のグレーの領域クリックで拡大表示を閉じます。
パフォーマンス分析
プロファイル機能
パフォーマンスのボトルネックを浮き彫りに!
• プロファイルサマリレポート
コアごとのCPU負荷率、CPU占有率の高いプロセス/スレッド、実行時間割合/最大実行時間/経過時間の多い関数を表示します。
• プロファイル
取得したデータからプロセス/スレッド/関数の単位で実行時間を解析した結果をリスト表示します。
①プロセス:各プロセスの総実行時間を表示。各プロセスの占有率を、システム全体から見た場合(システムモード)、指定範囲から見た場合(フォーカスモード)で解析。
②スレッド:各スレッドの実行時間の最大・最小・平均値、切替回数や、実行コア移動回数、各スレッドの総実行時間を解析。コアとプロセス(ID付き)を絞って解析することも可能。
③関数:子関数の実行時間の有/無を選んで、他スレッドへの遷移を含んで表示。プロセス/スレッド/関数名を絞って解析することも可能。
関数ヒストグラム
実行時間のばらつきを可視化
指定関数の実行時間、処理回数の最大/最小値表示ができます。
処理時間のバラつきや、設計通りの実行時間になっているかどうかが、一目で分かります。
2点間時間測定
任意区間の処理が閾値越えしたかを判定
開始/終了点にはタスク/関数in-out/プリント文など任意に指定でき、特定処理を測りたい場合に便利です。閾値を指定すれば、閾値越えの割合をグラフ表示します。
システム動作可視化
スレッドチャート・関数チャート
実行時間を数値化、挙動が見える!
プロセス/スレッド/関数単位で、処理シーケンスやタスク遷移を視覚的に把握できます。
ロジック・アナライザーのように、2つのカーソルを任意の場所に置くことができ、差分時間も簡単に確認できます。
CPU使用率表示とポートモニタ
CPU使用率、データの遷移を視覚的に確認!
CPU使用率と時系列の変数遷移変化を同時・同軸で表示できます。また、関数チャート/スレッドチャート表示に連動させて見ることができます。
関数チャート/スレッドチャートでのシステムの動作の確認とあわせて、CPU使用率やポートの状態、特定の変数(消費電力など)を検証することで、システム全体の動作検証が可能となります。
マルチコア
コアごとの動作を可視化
複数コア上で動作するプログラムの実行履歴を同一時間軸で表示します。コアごとの並列処理を検証したり、コア間をマイグレーションしたプログラムを一貫して見通すことができます。
検索・絞り込み・フィルタ
豊富な検索機能により、素早く不具合箇所を特定!
• 関数履歴検索
関数履歴検索では、関数名、特定のファイルに属する全ての関数出入口などの条件検索を行うことができます。
• デバッグプリント検索
ログウィンドウの「Message」部に出力されるデバッグプリント文字列(STR属性)の比較とレベル設定による検索が可能です。
• フィルタ表示
タスク名や関数名など任意の条件を指定することで、該当サンプルのみに絞ってチャート表示することができます。
• テーマ表示
チャート・ログリストの注目したいスレッド/コア情報を「テーマ」として設定することで、簡単にフィルタ/強調表示することができます。
• 絞り込み表示
表示条件を指定することで、該当サンプルのみリスト表示することができます。
• グループ別表示
「ファイル」、「クラス」、「プロジェクト」単位で関数チャートをグルーピングすることが可能です。
複数のモジュール毎の連動が可視化され、解析が容易になります。
メモリリーク・多重開放
メモリリークの発生箇所を特定
• メモリ消費状況を確認
長時間動作させていると、メモリ不足が原因で動作が遅くなったり動作が不安定になったりすることがあります。
「メモリチャート」でメモリの消費状況を確認した時、メモリ使用量が増加していく傾向が見られる場合、メモリリークが発生している可能性があります。
• メモリ解析を実行
メモリ解析機能を実行すると、「確保して解放されていない」など、メモリリークが疑われるメモリ確保処理に関する情報を取得することができます。
[メモリリークリスト]をクリックすると、検出された情報が一覧表示されます。
▼検出数には、以下の正常ケースも含まれます。
・計測開始前に確保され、計測中に解放された
・計測中に確保され、計測終了後に解放された
• メモリリークを検証
メモリリークリストには、発生時刻、命令種別、サイズ、アドレス、プログラム位置、プロセス名称、スレッド名称などの情報が表示され、任意の行を選択することで該当するソースコードを表示させることができます。
メモリ解析サマリのメモリ確保サイズランキングや、プロセス/スレッド名称のフィルタリング機能を利用して、メモリリークの発生個所を特定することができます。
メモリ多重開放の発生箇所を特定
• メモリ消費状況を確認
メモリの多重解放(すでに解放されている領域を再度解放しようとする)が原因で突然システムがダウンしたり動作が不安定になったりすることがあります。
「メモリチャート」でメモリの消費状況を確認してもメモリ使用量が増加していく傾向が見られず、メモリリークが原因ではなさそうな場合、メモリの多重解放が発生している可能性があります。
• メモリ解析を実行
メモリ解析機能を実行すると、多重解放が発生した回数を取得することができます。
[多重解放リスト]をクリックすると、検出された情報が一覧表示されます。
• 多重解放を検証
多重解放リストには、メモリ確保/解放に関する関数名、サイズ、プログラム位置、アドレスなどの情報が表示され、任意の行を選択することで該当するソースコードを表示させることができます。
カバレッジ
カバレッジ計測
関数や分岐の実行網羅率を解析・表示!
関数IN、OUTや分岐の通過/非通過を分析し、実行網羅率を表示します。プロジェクト単位/ソース単位/関数単位/ブロック単位など目的に応じた粒度に切り替えて確認できます。
▼計測の種類
カバレッジの種類は次の中からお選びいただけます。
・関数網羅 (Function coverage)
・命令網羅(Statement coverage:SC)
・判定条件網羅(Decision coverage:DC)
・条件網羅(Condition coverage:CC)
一度も実行されていない関数や分岐を簡単に見つけることができ、テスト条件の見直しや不必要な関数の特定を支援します。計測結果のレポート生成も可能で、html形式でファイルを出力し、そのまま成果物資料としてもお使いいただけるため、ソフトウェアの品質向上と作業効率化に貢献します。