java - 为什么我的 java 代码在没有 GUI 的情况下只使用了大约 20% 的 CPU

标签 java eclipse shell console

我正在做一个java程序,它有两个版本:一个有GUI,一个没有。

我对 GUI 很满意,因为它一直使用 100% 的 CPU,但没有 GUI 的(应该更快)只使用 5-25% 的 CPU。两个版本在计算方面完全相同。当我从 Eclipse 和 shell 运行时,也会出现同样的问题。

我考虑过使用 -Xms 和 -Xmx 分配更多内存,但它不会改变 CPU 使用率。

我还尝试在终端中将进程的优先级设置为 -15,但没有明显的差异。

如何确保在 Eclipse 和终端中我的代码拥有 100% 的 CPU。

最佳答案

我看到两种可能性

  1. 您确定它受 CPU 限制吗?在其中放置一个无限循环,看看它是否尖峰。

  2. 您的电脑是四核吗?对于您的 PC 和 GUI 来说,100% 可能就是 25%,多线程也许可以更好地利用 CPU。

  3. 既然你说这是非 GUI 版本,那么你是否过度使用 println,即非缓冲打印?

如果可能的话,并行性将解决问题 2,也许通过一些设计更改甚至解决问题 1

关于java - 为什么我的 java 代码在没有 GUI 的情况下只使用了大约 20% 的 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18461163/

相关文章:

shell - UNIX:复制整个目录结构并且只复制特定的文件类型

linux - 使用默认安装程序选项安装 .bin 文件的最佳方法是什么?

java - 有没有办法使用多次尝试和一次捕获?

Java,在没有数组的情况下按字母顺序对字符串进行排序

Windows 7 和 gnuplot 4.6 下的 Javaplot - 消失的结果

java - R.java 没有 R.id.map 的 map

java - 警告无法激活请求的配置文件 "projectname",因为它不存在

java - IntStream相对于普通Stream有什么优势?

java - 错误 : "The import javafx.embed.swt cannot be resolved" on Eclipse plug-in export

linux - 如何复制包含绝对符号链接(symbolic link)的文件夹并保留其相对目标