我的程序是幻灯片放映。它在具有其他进程的机器上运行,所以在等待显示下一张幻灯片时,我将其称为SleepEx(N,false),期望它使用的CPU数量接近于零(N在100ms和5000ms之间)。在我开发的XP Pro机器上,这正是发生的事情,但是在我的客户的XP Home机器上,它在SleepEx()期间注册了30-80%的CPU。该代码是一个单线程,所以无论是使用所有的CPU都在调用SleepEX()。有没有人见过这个?SleepEx()期间CPU使用率不下降()
回答
哪个进程占用所有CPU?如果用调试器闯入进程 - 在堆栈跟踪中花费时间?
尝试使用ProcDump在进程达到CPU峰值时创建进程转储。然后分析堆栈跟踪以查看它卡住的位置。这样做几次,你可以很好地抽出花费时间。
这是过程本身。我正在使用任务管理器进行监控。 – 2011-05-23 10:22:17
我建议你在繁忙时间触发进程的远程转储,并分析堆栈跟踪以查看它花费的时间 – 2011-05-23 10:23:12
对不起 - 过早地点击
我以前见过这个。您阻止主窗口消息处理线程。
如果它具有主窗口消息处理功能,则不应将Sleep()函数置于单线程应用程序中。窗口化的应用程序总是应该处理窗口消息而不会有明显的延迟,另一种情况是它至少会导致应用程序出现死锁。 结果取决于Windows平台,编译器设置和CPU配置,通常在调试模式下的应用程序具有临时解决方法。但是,如果你启动这样的应用程序编译与释放设置它可以消耗一个CPU核心功能,这阻止了他的主窗口消息处理线程。
MSDN的备注部分Sleep()函数说明清楚地说明了这种情况。
你只需要开启新的线程,在那里使用Sleep()函数允许主线程中的窗口消息自由流动。
- 1. 如何降低CruiseControl.NET的CPU使用率?
- 2. 如何降低ffmpeg的CPU使用率?
- 3. 随着UIScrollView变大,CPU使用率下降?
- 4. Node.js可读流随着时间的推移而变慢,CPU使用率下降
- 5. CPU使用率和CPU利用率之间的区别?
- 6. 降低CPU占用率(电子:DesktopCapturer)
- 7. SleepEx期间处理多少个APC?
- 8. CPU使用率( “”)
- 9. CPU使用率不同?
- 10. 当Silverlight中的CPU不在屋顶时,什么可以使帧率下降?
- 11. 在TSQL查询期间控制CPU使用率 - sql 2008
- 12. 如何降低Android手机中应用的CPU使用率?
- 13. CPU使用率高,串口时间
- 14. Websphere CPU使用率
- 15. CentOS CPU使用率
- 16. 为什么在负载测试期间CPU%以最高用户负载下降?
- 17. Mysql通过缓冲降低CPU使用率
- 18. 相对于最大CPU频率的CPU/CPU进程/ CPU周期
- 19. 并行效率下降不一致
- 20. Java - 高CPU使用率
- 21. 高mySQL cpu使用率
- 22. wordpress 4.8高CPU使用率
- 23. CPU使用率和Object.wait
- 24. JBoss CPU使用率问题
- 25. javaw.exe CPU使用率高
- 26. Android - 内存/ CPU使用率
- 27. C++,CPU使用率过高
- 28. CPU使用率达到100%
- 29. CPU使用率峰值6.1
- 30. JavaScript累计CPU使用率
你称之为启动线程的高级别,比如视频播放器吗? – 2011-05-23 10:13:03
不知道。我使用FreeImage库来处理图像转换,但在这一点上没有理由做任何事情。事实上,它在我的机器上运行正常,但不在客户身上令人困惑。 – 2011-05-23 10:16:38
Offtopic:调用睡眠是一种奇怪的方式来做到这一点。当你这样做时,你会使你的应用程序无响应。使用计时器触发幻灯片更改会更好。 – 2011-05-23 11:01:36