.NET - 如何比较2个代码块之间的性能?

时间:2011-04-08 14:08:01

标签: c# .net c#-4.0

我正在寻找一种简单的方法来比较两种做事方式之间的表现。 基本上我有一个返回相同结果的方法,但我发现了两种获得预期结果的方法。

.NET或Visual Studio是否提供了分析内存消耗和处理器使用情况的类?

8 个答案:

答案 0 :(得分:1)

您可以使用StopWatch课程进行基本计时 - 不用说,您需要重复运行,获得统计有效的内容,以排除外部因素。对于内存或CPU利用率,您可以使用性能计数器,但要小心解释结果,排除开销和外部因素的偏差

答案 1 :(得分:1)

您可以使用sql profiler来检查否。数据库访问以及通过花时间访问内容你可以检查性能

答案 2 :(得分:1)

您应该查看Visual Studio的Performançe向导。 这些工具可以用几种不同的方式分析执行。

答案 3 :(得分:1)

DateTime不好,您希望StopWatch类测量时序。 要查看负载和内存消耗,您需要一个分析器。

答案 4 :(得分:0)

您可以尝试Eqatec Profiler

答案 5 :(得分:0)

要获得总内存消耗,您可以使用GC Class

    //initialise objects/vairables subject to memory measurement

    long memUsageBefore = GC.GetTotalMemory(true); 

    //do something with some measured object

    long memUsageAftere  = GC.GetTotalMemory(true); 

    // make it ineligible for garbage collection from the start of the current routine to the point where this method is called. 
    GC.KeepAlive(measuredObject); 

答案 6 :(得分:0)

比较每个方法采用的DateTime.Ticks数量。

答案 7 :(得分:0)

您正在寻找的是Profiler。

请参阅此website

或者您可以使用StopWatch class in the System.Diagnostics namespace来衡量时间。

另请查看此问题 - .NET code profiling tools