WinRTのバックグラウンドタスクのCPU使用量のクォータは1秒です。ロック画面にある場合は2秒です。問題は、このCPU使用量を正確に測定する方法です。私のコードがこの2秒のクォータで実行されているかどうかを知りたいですか?私は、タスクの実行の前後にDateTime.Nowを使用して推測する正しいアプローチではありません。バックグラウンドタスクについて
MSDNの記事: Supporting your app with background tasksバックグラウンドタスクでCPU使用率を正確に測定する方法は?
答えて
が、私は同じ問題を抱えていました。
Task Manager
を起動すると、App history
タブの下に、さまざまなアプリのリソース使用状況の統計が表示されます。それらの1つはCPU Time
です。問題はそれが平均ではないことですが、合計CPU使用時間のみが表示されます。
平均的な時間が必要な場合は、アプリでバックグラウンドアクティビティをカウントし、それによって時間全体を分けることで、平均的な時間が得られます。
これは私がCPU使用量を測定するために今すぐできることだと思います。ありがとうございます。 –
私はGetProcessTimes WinAPIを使用しました。
ドキュメントは、「デスクトップのみアプリ」が、技術的には、それも携帯電話に存在していると言う:
[DllImport("KERNELBASE.DLL", SetLastError = true)]
static extern IntPtr GetCurrentProcess();
// NB! Undocumented API, won't pass marketplace checks.
[DllImport("KERNELBASE.DLL", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetProcessTimes(IntPtr hProcess, out long lpCreationTime, out long lpExitTime, out long lpKernelTime, out long lpUserTime);
PC上でのKernel32.dllでKERNELBASE.DLLを交換してください。
これはマーケットプレイスの認定を通過しませんが、あなたのバックグラウンドタスクをベンチマークするのに十分なはずです。
コールGetProcessTimes開始時には、long startTime = KernelTime + UserTime
を計算します。終了したら、GetProcessTimesを呼び出し、(KernelTime + UserTime) - startTime
を計算すると、データが取得されます。測定単位はTimeSpanの場合と同様100nsのダニです。
- 1. 私のプログラムによるデバイスドライバのCPU/IO使用率の測定
- 2. WMIのHTA監視CPU使用率 - 正確でない
- 3. 文字列の幅を正確に測定する方法は?
- 4. カーネルスペースでのオーバーヘッドを正確に測定する方法
- 5. フラッシュでCPU使用率を取得する方法は?
- 6. C++プロファイリング(google cpu perf tools)は正確に何を測定しますか?
- 7. プロセス内の単一スレッドのCPU使用率を確認する方法
- 8. AndroidでのアプリのCPU使用率を確認する
- 9. デスクトップクライアント/サーバーアプリケーションで正確なパフォーマンス測定を得る方法
- 10. DelphiでスレッドのCPU使用率を追跡する方法
- 11. CPU使用率を100%に
- 12. CPU使用率スパイク
- 13. CPU使用率を最大にする
- 14. トップバッチモードでのCPU使用率
- 15. PythonプロセスのCPU時間を正確に測定するにはどうすればよいですか?
- 16. LinuxプロセスのRAMとCPU使用率を記録する方法
- 17. JavaからOSのCPU使用率を取得する方法
- 18. 最大CPU使用率を強制する方法
- 19. PHPスクリプトのCPU使用率を監視する方法
- 20. 正確な時間測定
- 21. C#で特定のサービスのCPU使用率を取得する
- 22. 測定機能cppのメモリ使用率
- 23. CPUクロックによる測定時間は?
- 24. CPU /メモリ使用率を得るクロスプラットフォームの方法
- 25. JavaクラスのCPU使用率(%)を調べる方法
- 26. ストアドプロシージャのパフォーマンスを正確に測定
- 27. OS XでアプリケーションのCPU使用率を制御する方法は?
- 28. Windows XPでCPU使用率メトリックを取得する方法は?
- 29. クエリの効率を正確に測定するにはどうすればよいですか?
- 30. CPU使用率を取得する
また、i5がARMベースのプロセッサよりも多くのコードを実行できると推測します...私のアプリケーションが2秒以上かかることがないかどうかをテストするには最も遅いプロセッサが必要でしょうか? – GameScripting
良いことに、そうだとすれば、ローエンドのARMタブレットでのバックグラウンド作業のために、Core-i7のクローズドデスクトップよりも計算能力がはるかに低くなっています。 –
Webワーカーはバックグラウンドタスクと同じですか?イメージを取得してキャッシュしたいのですが、2秒間は処理時間が足りないように見えます(特に、作画して保存したいからです)。 – kamranicus