我一直在研究如何加速我的应用程序,因为它对性能至关重要...即每毫秒的提升都有益。为了做到这一点,我有一个方法调用其他方法,而这些其他方法都被包裹在一个Stopwatch计时器和Console.WriteLine调用中。例如:
private void SomeMainMethod()
{
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
SomeMethod();
sw.Stop();
Console.WriteLine("Time for SomeMethod = {0}ms", sw.ElapsedMilliseconds);
sw.Reset();
sw.Start();
SomeOtherMethod();
sw.Stop();
Console.WriteLine("Time for SomeOtherMethod= {0}ms", sw.ElapsedMilliseconds);
//...
}
问题是当我注释掉 Stopwatch 和 Console.WriteLine 行时,代码运行慢了约20ms(不是50ms),这对我所需的性能来说很多。
有人知道为什么吗?
编辑:类中的 SomeMainMethod 方法和其他方法也类似于上述被包裹在 Stopwatch 和 Console.WriteLine 调用中。
SomeMainMethod 及其调用的方法是属于一个类的一部分,该类是一个Class Library,从控制台测试平台调用,所有内容都是单线程。
更多信息:应用正在以x86 .NET 4.6.1 Release模式运行,并启用优化。 我也在Visual Studio 2013中运行此操作。