我正在做一个java程序,它有两个版本:一个有GUI,一个没有。
我对 GUI 很满意,因为它一直使用 100% 的 CPU,但没有 GUI 的(应该更快)只使用 5-25% 的 CPU。两个版本在计算方面完全相同。当我从 Eclipse 和 shell 运行时,也会出现同样的问题。
我考虑过使用 -Xms 和 -Xmx 分配更多内存,但它不会改变 CPU 使用率。
我还尝试在终端中将进程的优先级设置为 -15,但没有明显的差异。
如何确保在 Eclipse 和终端中我的代码拥有 100% 的 CPU。
最佳答案
我看到两种可能性
您确定它受 CPU 限制吗?在其中放置一个无限循环,看看它是否尖峰。
您的电脑是四核吗?对于您的 PC 和 GUI 来说,100% 可能就是 25%,多线程也许可以更好地利用 CPU。
既然你说这是非 GUI 版本,那么你是否过度使用
println
,即非缓冲打印?
如果可能的话,并行性将解决问题 2,也许通过一些设计更改甚至解决问题 1
关于java - 为什么我的 java 代码在没有 GUI 的情况下只使用了大约 20% 的 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18461163/