C#代码大小和代码执行时间

时间:2012-06-21 20:46:30

标签: c# performance

有没有办法找到代码大小和执行时间是什么,所以我可以比较两个代码并确定哪个代码更好?

例如,假设我想查找此

的大小和执行时间

代码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

3 个答案:

答案 0 :(得分:15)

您可以使用市场上的ANTS Profiler http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/(应付产品但有试用版)或其他一些Profiler产品(ANTS,vTune,OptimizeIt,DevPartner,YourKit,dotTrace)。

您也可以通过设置一些使用手动StopWatch工具执行这两个功能的单元测试来比较执行时间(更快,更便宜),从而自行完成这些功能。如果您需要稍后更改实施,单元测试还可以确保您没有任何性能回归。 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;

答案 1 :(得分:3)

要测量执行时间,您应该使用StopWatch - 如果您需要适当的基准测试,则需要多次运行多次迭代并将其平均。

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

// do a million iterations

sw.Stop();

var time = sw.Elapsed;

至于内存大小 - 您可以使用众多内存分析器中的一个 - ANTS memory profilerdotTrace是两个商业选项。

答案 2 :(得分:2)

您可以使用FileInfo类(请参阅Length属性)来确定文件的大小。

您可以使用Stopwatch类来确定运行程序所需的时间。