添加秒表的C#性能惩罚?

时间:2012-03-29 12:44:30

标签: c# stopwatch

将C#Stop Watch添加到对象会产生什么性能损失?

2 个答案:

答案 0 :(得分:1)

在C#编程环境中不应该那么重要。如果它被证明是重要的,重新考虑你对秒表和C#的需要/使用。

你总是可以尝试通过实施1000次,定时,然后将结果除以1000来自己进行基准测试。很难准确地说出这个功能对性能的要求,但是你可以将它与其他一些简单的操作进行比较并看看它是如何相关的。

答案 1 :(得分:0)

  static void Main(string[] args)
        {
            Worker(1); // jit Warmup
            var stopWatchOfStopwatchStopwatch = System.Diagnostics.Stopwatch.StartNew();
            var stopWatchOfLoop = System.Diagnostics.Stopwatch.StartNew();
            Worker(100000000);
            stopWatchOfLoop.Stop();
            Console.WriteLine("Elapsed of inner SW: " + stopWatchOfLoop.Elapsed.ToString());
            stopWatchOfStopwatchStopwatch.Stop();
            Console.WriteLine("Elapsed of outer SW: " + stopWatchOfStopwatchStopwatch.Elapsed.ToString());

            var stopwatchOfcompareLoop = System.Diagnostics.Stopwatch.StartNew();
            Worker(100000000);
            stopwatchOfcompareLoop.Stop();
            Console.WriteLine("Elapsed of inner SW: " + stopWatchOfLoop.Elapsed.ToString());
        }
        static void Worker(int iterations)
        {
            for (int i = 0; i < iterations; i++)
            {
                Console.WriteLine("bla");
            }
        }

差异无关紧要 - 但这在很大程度上取决于您的绩效目标:)