C#ストップウォッチをオブジェクトに追加することによって発生するパフォーマンス上のペナルティはどのくらいですか?C#ストップウォッチを追加することによるパフォーマンスのペナルティ?
答えて
static void Main(string[] args)
{
Worker(1); // jit Warmup
var stopWatchOfStopwatchStopwatch = System.Diagnostics.Stopwatch.StartNew();
var stopWatchOfLoop = System.Diagnostics.Stopwatch.StartNew();
Worker(100000000);
stopWatchOfLoop.Stop();
Console.WriteLine("Elapsed of inner SW: " + stopWatchOfLoop.Elapsed.ToString());
stopWatchOfStopwatchStopwatch.Stop();
Console.WriteLine("Elapsed of outer SW: " + stopWatchOfStopwatchStopwatch.Elapsed.ToString());
var stopwatchOfcompareLoop = System.Diagnostics.Stopwatch.StartNew();
Worker(100000000);
stopwatchOfcompareLoop.Stop();
Console.WriteLine("Elapsed of inner SW: " + stopWatchOfLoop.Elapsed.ToString());
}
static void Worker(int iterations)
{
for (int i = 0; i < iterations; i++)
{
Console.WriteLine("bla");
}
}
違いは微々たるものである - しかし、それはかなりC#プログラミングの文脈におけるその重要すべきではないパフォーマンス目標:)
「重要」と思ってください。それは数秒、ミリ秒などを意味しますか? –
私のクアッドコア2.83 GHz、8 GB Ram、およびx64 Win7の5000回の反復では、0.000XXX秒のオーダーでした。 – Alex
に依存します。それが重要であることが判明した場合は、StopwatchとC#のニーズ/使用を再考してください。
これを1000回実行し、タイミングを計り、結果を1000で除算することで、ベンチマークをいつでも試行できます。この機能の要求性能を正確に表すのは難しいですが、それがどのように関係するかを見てください。
私はこれを行い平均で0.258ミリ秒を得て、Stopwatch.StartNewでインスタンス化し、.ElapsedMillisecondsで測定します。これは、適度に高速なマシン上でローカルのデバッグモードになっていました。 – Abacus
- 1. int値をdoubleに追加すると、パフォーマンス上の利点/ペナルティはありますか?
- 2. Cでストップウォッチを作成するには?
- 3. 一般的な値を格納するときのC#のtypecastingとboxing/unboxingのパフォーマンスのペナルティ
- 4. アトミックfetch_addとパフォーマンスの追加
- 5. Visual C++ストップウォッチ
- 6. MySQL:「内部結合」パフォーマンス:「どこ」と「オン」のどちらに追加するか
- 7. 多型のシグネチャを追加するとパフォーマンスが低下するのはなぜですか?ここ
- 8. TinyMCE triggerSave()コマンド - パフォーマンス上のペナルティはありますか?
- 9. セルフ・ジョインはマルチ・テーブル・ジョインよりも高いパフォーマンス・ペナルティを伴いますか?
- 10. SKSceneをUICollectionViewCellに追加するとスクロールのパフォーマンスが低下する
- 11. WPF C#プログラムによるタブの追加と移動
- 12. VB/C#番号の追加による検索と置換?
- 13. UIViewがEAGLViewの下にあるときに大きなパフォーマンス上のペナルティがありますか?
- 14. ブラウザのパフォーマンスに応じてエフェクトを追加する
- 15. ペナルティを伴うジョブスケジューリング問題がNPにあることをどのように証明できますか?
- 16. クラスを大規模なDOMに追加するときのパフォーマンスの問題
- 17. クラスに[Serializable]を追加するとパフォーマンスに影響はありますか?
- 18. gcc/g ++に-rdynamicリンカオプションを追加するとパフォーマンスに影響しますか?
- 19. 私のストップウォッチが時間を追加しないのはなぜですか?
- 20. c#コントロールをパネルに追加すると、コントロールがNULLになる
- 21. 無効化は、()私はこのように私のフォームにピクチャボックスを追加すると、プログラム制御(C#の)
- 22. 追加データを追加すると、インデックスはクエリのパフォーマンスを維持しますか?
- 23. リストにオブジェクトを追加するとC#ループが失敗する!
- 24. NSUserDefaultsとそれにvoid *型のデータを追加すること
- 25. xcodeに.cファイルを追加する
- 26. グラフィックをC++に追加する方法
- 27. C#ボタンをカスタムコントロールに追加する
- 28. C#mvcプロジェクトにボタンを追加する
- 29. C++ win32:コンボボックスに値を追加する
- 30. プロジェクトにC#クラスファイルを追加するコード
なぜ、追加時にパフォーマンスの問題が発生していますか? – Oded
秒ストップウォッチを使用してペナルティをベンチマークすることができます;) –
ストップウォッチを使用してマイクロベンチマークを作成します: –