我想统计一下代码中各个函数个跑了多少CPU时间,请问改怎么做?在c#里面

解决方案 »

  1.   

    Stopwatch watch = new Stopwatch(); 
    watch.Start(); 
    watch.Stop(); 
    Console.WriteLine("执行时间为:{0}秒", watch.ElapsedMilliseconds / 1000.0f); 
      

  2.   

    可以用Visual Studio自带的profiler。需要安装VSTS版。
      

  3.   

    1、在程序执行过程中无用单元收集可能会发生在任何时候。在.NET这样的运行时环境中,系统可能在执行无用单元收集的任何一个时间暂停。
    所以在测试函数执行时间时,需要确保在执行时间测试代码时没有运行无用单元收集器。
    2、在.NET环境中,程序运行在被称为应用程序域的进程中。这就允许操作系统在同一时间内分开运行每个不同的程序(即时间轮转)。在进程内,程序或程序的一部分是在线程内执行的。操作系统通过线程来分配程序的执行时间。
    所以在对代码执行时间进行测试时,需要确保正在进行时间测试的代码只在自身程序分配的进程中,而不在操作系统执行的其它任务里。考虑以上两点,写测试代码。