2
私はC#を使用してアプリケーションを作成しています。私はいくつかのベンチマークを実行してアプリケーションを高速化しようとしましたが、問題が発生しました。ファーストタイムインデックス配列が遅すぎる
Process[] processes = Process.GetProcesses();
foreach (Process process in processes)
if (process.MainWindowTitle == "Title")
{
// Do Stuff
}
私は問題は、すぐに私はその配列の特定の要素にアクセスして、配列を作成するように、あるその後のアクセスよりもかなり長い時間がかかることに気づいた:私は別の間隔で複数回実行する必要がある場合に、ループを持っています。
if (processes[0].MainWindowTitle == "Title") { } // ~0.5 ms
if (processes[0].MainWindowTitle == "Title") { } // ~0.0 ms
if (processes[0].MainWindowTitle == "Title") { } // ~0.0 ms
if (processes[0].MainWindowTitle == "Title") { } // ~0.0 ms
これはかなり重大な問題です。 0.1msよりも短い時間を要するものは50msかかる。なぜこれが起こっているのか、私は物事をスピードアップするために何ができるのですか?
+1よく聞こえます – Jonno
ええ、あなたは絶対に正しいです。私はベンチマークのために間違った場所を探していた。 MainWindowTitleはタイトルが最初にキャッシュされているかどうかをチェックします。もしそれができないのであれば、それを得るためのネイティブマジックはありません。ありがとう。 – Dave