7

2つのコードを比較してどちらが優れているかを判断できるように、コードのサイズと実行時間を見つける方法はありますか?

たとえば、これのサイズと実行時間を見つけたいとしましょう

コード1

for(int i=0; i<5; i++)
{
   sum+=1;
}

この

コード2

for(int i=0; i<=4; i++)
{
   sum = sum + 1;
}

どちらが良いかを決めるために(私は今この例を気にしません)。たとえば、結果は次のようになります。

Code 1:
Size: ? KB
Time: ? ms

Code 2:
Size: ? KB
Time: ? ms
4

3 に答える 3

15

ANTS Profiler http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/(有料製品ですが試用版があります)または他のProfiler製品(ANTS、vTune、市場に出回っているOptimizeIt、DevPartner、YourKit、dotTrace)。

また、手動のStopWatchインストルメンテーションを使用してこれら2つの関数を実行する単体テストを設定し、実行時間を比較することで、関数を自分でインストルメントすることもできます(より高速で安価)。単体テストでは、後で実装を変更する必要がある場合に、パフォーマンスに低下がないことを確認することもできます。http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx

    var stopWatch = new Stopwatch();
    stopWatch.Start();
    var result = CallFunction();
    stopWatch.Stop();
    var executionTime = stopWatch.Elapsed;
于 2012-06-21T20:48:50.297 に答える
3

実行時間を測定するには、使用StopWatchする必要があります。適切なベンチマークが必要な場合は、複数の反復を複数回実行し、それらを平均化する必要があります。

var sw = new StopWatch();
sw.Start();

// do a million iterations

sw.Stop();

var time = sw.Elapsed;

メモリサイズに関しては、利用可能な多くのメモリプロファイラーの1つを使用できます。ANTSメモリプロファイラーdotTraceは2つの商用オプションです。

于 2012-06-21T20:49:23.230 に答える
2

FileInfoクラス(プロパティを参照)を使用Lengthして、ファイルのサイズを決定できます。

Stopwatchクラスを使用して、プログラムの実行にかかる時間を決定できます。

于 2012-06-21T20:48:02.217 に答える