CRI ADX  Last Updated: 2024-03-21 14:32 p
CPU負荷測定

サンプルのディレクトリ

/cri/pc/samples/criatomex/display_cpu_load

サンプルで使用しているデータ

/cri/common/smpdata/criatomex/
  • SampleProject.acf
  • AtomCueSheet.avb
  • AtomCueSheet.awb

サンプルの解説

マルチスレッドフレームワークでCRI Atomを使用する場合、サーバー処理はメインスレッドとは別スレッドで動作するため、 CRI AtomのCPU負荷を計測するのが難しくなります。


CRI Atomでは、サーバー処理の負荷、実行間隔を簡単に図るためのパフォーマンスモニタ機能を持っています。
/* ライブラリの初期化 */
criAtomEx_Initialize(NULL, NULL, 0);
/* パフォーマンスモニタ機能の追加 */
/* パフォーマンスモニタのリセット */
for(;;) {
/* V同期待ち */
criFwSys_WaitVsync();
/* サーバー処理の実行 */
/* パフォーマンス情報の取得 */
}
/* パフォーマンスモニタ機能の解除 */
/* ライブラリの終了 */
void criAtomEx_Finalize(void)
ライブラリの終了
CriBool criAtomEx_Initialize(const CriAtomExConfig *config, void *work, CriSint32 work_size)
ライブラリの初期化
#define criAtomEx_DetachPerformanceMonitor()
パフォーマンスモニター機能の削除
Definition: cri_atom_ex.h:412
void criAtomEx_ExecuteMain(void)
サーバー処理の実行
#define criAtomEx_GetPerformanceInfo(p_info)
パフォーマンス情報の取得
Definition: cri_atom_ex.h:435
#define criAtomEx_AttachPerformanceMonitor()
パフォーマンスモニター機能の追加
Definition: cri_atom_ex.h:399
#define criAtomEx_ResetPerformanceMonitor()
パフォーマンスモニターのリセット
Definition: cri_atom_ex.h:424
パフォーマンス情報
Definition: cri_atom.h:915


  • パフォーマンスモニタの処理内容
    パフォーマンスモニタ機能は、サーバー処理が実行される度に前回サーバー処理からの経過時間、 サーバー処理にかかった時間を累積していき、サーバー処理実行回数から平均値を計算します。
    また、それぞれのピーク値も保存しており、いずれの情報も criAtomEx_GetPerformanceInfo 関数で取得可能です。

  • パフォーマンスモニタの初期化
    パフォーマンスモニタの情報を初期化したい場合は、 criAtomEx_ResetPerformanceMonitor 関数を実行することで、 内部で保存していたパフォーマンスの統計情報をリセットします。

特定のタイミングでのサーバー処理負荷を測定したい場合等に利用できるほか、何か問題が発生した際、 例えばサーバー動作周期が安定していないといったことがわかれば、原因調査の手がかりになります。