Windows限制CPU时间吗?

本文关键字:时间 CPU 限制 Windows | 更新日期: 2023-09-27 18:17:13

我用c#写了一个应用程序,在最初的几分钟里,它每秒执行超过11000次操作(SHA1/AES)。但当我让它运行几分钟后,它就会下降到每秒6000 p,并在这个水平上保持几个小时。如果重新启动应用程序,它将返回到11.000。任务管理器中的CPU使用情况显示了类似的模式。

现在我正在寻找一个解释,要么是我如何测量操作/秒(但在这种情况下任务管理器会告诉一个不同的故事),要么是Windows给我的程序更少的CPU时间,一旦它注意到它执行繁重的工作。两者似乎都不太可能,那么重启后运行速度更快的原因是什么呢?

Windows限制CPU时间吗?

听起来好像您的时间最终会受到垃圾收集的影响。你是否正在创建大量寿命不太短的对象?如果你的Visual Studio版本支持它,你应该对这个场景进行性能配置,看看你的时间都花在了什么地方。

如果。net 4.0+,你也可以尝试使用<gcServer enabled="true" />在你的Web或应用程序配置下的<runtime>节点启用多线程垃圾收集…这意味着它暂时挂起你的应用程序来清理,但它可能比一个持续消耗的线程在后台收集更好。