栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在C#中对小型代码样本进行基准测试,是否可以改善此实现?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在C#中对小型代码样本进行基准测试,是否可以改善此实现?

这是修改后的功能:根据社区的建议,随时对其进行修订,使其成为社区Wiki。

static double Profile(string description, int iterations, Action func) {    //Run at highest priority to minimize fluctuations caused by other processes/threads    Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;    Thread.CurrentThread.Priority = ThreadPriority.Highest;    // warm up     func();    var watch = new Stopwatch();    // clean up    GC.Collect();    GC.WaitForPendingFinalizers();    GC.Collect();    watch.Start();    for (int i = 0; i < iterations; i++) {        func();    }    watch.Stop();    Console.Write(description);    Console.WriteLine(" Time Elapsed {0} ms", watch.Elapsed.TotalMilliseconds);    return watch.Elapsed.TotalMilliseconds;}

确保 在启用优化的情况下在Release中进行编译,并在Visual Studio外部运行测试
。最后一部分很重要,因为即使在发布模式下,JIT也会通过附加的调试器来限制其优化。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/383256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号