2011-01-24 25 views
1

我有一个特别的对象,它真的忙于从外部来源访问数据,因此它需要一段时间来实例化。无论如何,我可以在其构造器中测量方法调用的时间,以查看哪些实际上正在造成损害?程序性能

感谢

+0

请注意,您应该始终使用以** Release **模式编译的程序进行性能测试。这里有很多关于Stack Overflow的问题,证明这不是常识。 – 2011-01-24 13:26:46

回答

2

可以使用StopWatch类来衡量的时候你构造函数。

例子:

public Class1() 
{ 
    Stopwatch stopWatch = new Stopwatch(); 
    stopWatch.Start(); 

    // Do your stuff here... 

    stopWatch.Stop(); 

    // Format and display the TimeSpan value. 
    string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", 
     ts.Hours, ts.Minutes, ts.Seconds, 
     ts.Milliseconds/10); 
    Console.WriteLine(elapsedTime, "RunTime"); 
} 
0

正如其他人说,使用秒表类。但是,使用这种方法的一个好方法是在启动秒表之前运行一次测试程序,以获取所有内容的打点,缓存等。然后在定时部分内运行测试1000次以获得平均值。重复整个业务几次以获得平均值,因为时间总是可变的。

0

您可以在Visual Studio中使用Performance工具(如果您有正确的版本)。这样你就不需要编写代码,而且你也可以更好地指出费时的方法。

0

如果您想查看方法的使用时间,Eqatec profiler是免费的。我用它来达到这个目的。

既然你提到数据访问,你可能想看看sql profiler(假设MS Sql Server)。