質問

アプリケーションで消費されるサイクルカウント(プロセッサ命令サイクル)からプロセッサ上のアプリケーションのスループットを決定することは可能ですか?はいの場合、それを計算する方法は?

役に立ちましたか?

解決

プロセスが完全にCPUバインドされている場合、プロセッサ速度をサイクル数で分割してスループットを取得します。

実際には、完全にCPUバインドされたプロセスはほとんどありません。その場合、他の要因(ディスク速度、メモリ速度、シリアル化など)を考慮する必要があります。

他のヒント

単純:

#include <time.h>
clock_t c;
c = clock(); // c holds clock ticks value
c = c / CLOCKS_PER_SEC; // real time, if you need it

あなたが得る値は近似であることに注意してください。詳細については、 clock() 男ページ.

一部のCPUには内部があります パフォーマンスレジスタ これにより、命令サイクル(場合によっては実行ユニットベースでも)、キャッシュミス、キャッシュ/メモリの読み取り/書き込みなど、あらゆる種類の興味深い統計を収集できます。これらに直接アクセスできますが、何に応じてアクセスできます。そこに使用しているCPUとOSは、GUIを介してすべての詳細を管理する既存のツールがある場合があります。多くの場合、優れたプロファイリングツールはパフォーマンスレジスタをサポートし、それらを使用して統計を収集できます。

使用する場合 皮質-M3 ti/luminary microから、あなたは driverlib Ti/Luminar Microによって配信されます。 Systick関数を使用すると、Systickperiodを1プロセッササイクルに設定できます。したがって、割り込みの間に1つのプロセッサクロックがあります。割り込みの数をカウントすることにより、関数または関数ブロックがどれだけの時間をかけるかについて「十分に推定される」を取得する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top