11

私は D 言語が初めてで、アルゴリズムの実行時間を測定する必要があります。私のオプションは何ですか?すでにいくつかの組み込みソリューションがありますか? ウェブ上で決定的なものを見つけることができませんでした。

4

3 に答える 3

14

1 つの方法は、-profileコマンド ライン パラメータを使用することです。プログラムを実行すると、各関数の実行時間を確認できるファイルtrace.logが作成されます。これはもちろん、コンパイラが各関数に時間カウント コードを挿入するため、プログラムの速度が低下します。このメソッドは、関数の相対速度を見つけて、最小限の労力でアプリの速度を向上させるために最適化する必要があるものを特定するために使用されます。

2 番目のオプションは、std.datetime を使用することです。ストップウォッチクラス。リンクの例を参照してください。

または、 std.datetimeを直接使用する方が適している場合もあります。ベンチマーク機能。

忘れないで:

  1. ベンチマーク時には、これらの dmd コンパイラ フラグを使用して最大限の最適化を実現し-release -O -inline -noboundscheckます。
  2. デバッグビルドのベンチマークを実行しないでください。
  3. ベンチマークされた関数内でライブラリ コードを呼び出さないようにしてください。独自のコードではなく、ライブラリ実装のパフォーマンスをベンチマークすることになります。

さらに、 LDCまたはGDCコンパイラの使用を検討することもできます。どちらも、DMD よりも優れた最適化/アプリ実行速度を提供します。

于 2013-07-25T11:44:38.290 に答える