繁体   English   中英

Windows是否会限制CPU时间?

[英]Does Windows limit CPU time?

我已经用C#编写了一个应用程序,在最初的几分钟,它每秒执行超过11.000次操作(SHA1 / AES)。 但是,当我让它运行几分钟后,速度下降至6.000 p / sec,并在该水平上保持了数小时。 如果我重新启动该应用程序,它将返回到11.000。 任务管理器中的CPU使用率显示了类似的模式。

现在,我正在寻找一个解释,或者我在衡量每秒操作数方面存在一个巨大的错误(但在这种情况下,任务管理器会讲一个不同的故事),或者Windows注意到我的程序减少了CPU时间做繁重的工作。 两者似乎都不大可能,那么重新启动后运行速度更快的原因可能是什么?

听起来好像您的时间最终会受到垃圾回收的影响。 您是否正在创建大量不是超短寿命的对象? 如果您的Visual Studio版本支持此功能,则应对此情况进行性能分析,并查看方法在何处花费时间。

如果是.NET 4.0以上版本,您还可以尝试在<runtime>节点下的Web或App配置中使用<gcServer enabled="true" />来启用多线程垃圾收集...。这意味着它会暂时挂起您的应用程序以进行清理偶尔更新,但它可能比在后台收集连续消耗的线程更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM