我在java中有一个应用程序,当我在IDE中运行它时甚至在桌面上消耗了很多cpu因为我的电脑挂起而且我甚至无法工作。那么有什么办法我可以减少该应用程序使用CUP永远不会大约20到30而不是101或100看到屏幕截图。![在此处输入图像描述] [1]
任何人都能告诉我这是怎么可能的吗?
答案 0 :(得分:1)
您可以做的是确定程序中的瓶颈位置,然后通过睡眠正在运行的线程来控制应用程序空闲的时间。让我们说你已经确定了你的瓶颈并且它已经是一个循环。然后,您可以测量在循环中计算一次迭代所需的时间。获得此数字后,您只需根据应用程序空闲的百分比计算您希望处理器休眠的时间。
例如,假设您希望应用程序仅使用20%的处理器,并且在循环中完成一次迭代需要20 ms。然后,您希望在下一次迭代之前在循环结束时睡眠80 ms,以使处理器在80%的时间内处于空闲状态。如果你没有#34;游戏圈"或类似的这可能有点难以实现,但至少你可以尝试估计睡眠时间,以使其不能100%工作