空闲时 Eclipse 中的 CPU 使用率过高

2022-08-31 22:34:09

在我的多核计算机上,Eclipse 使用 100% 到 250% 的 CPU 功率,即使在新的普通安装和空工作区上闲置也是如此。当实际做事时,它会变得缓慢且无反应。

我尝试按照此处的建议设置内存设置:Eclipse随机使用100%CPU。这无济于事。我还尝试了不同的Java版本,即OpenJDK和Oracle Java 7,以及Eclipse版本Juno和Indigo。我在Ubuntu 12.04 LTS上。

当我关闭Eclipse时,另一个可能不相关的问题,Java进程仍然保持打开状态,CPU使用率超过200%,需要手动杀死。


答案 1

我今天遇到了同样的问题,事实证明它是一个占用CPU的索引线程。我最近在一个项目中添加了相当多的文件,但忘记了它。我意识到其他人不太可能有这个问题,但发布我如何调查它可能是有用的。

我正在运行基于eclipse Juno的STS的Ubuntu 12.10。

  1. 从命令行启动 eclipse 并将输出重定向到文件,以便我们可以获取线程转储
  2. 让它满足一下,然后获取每个线程的CPU使用率列表:ps -mo 'pid lwp stime time pcpu' -C java。下面是识别我的 CPU 饥渴线程的输出示例:

    PID LWP STIME TIME %CPU

    6974 - 07:42 00:15:51 133

    7067 07:42 00:09:49 86.1

  3. 将线程ID(在我的情况下为7067)转换为十六进制0x1b9b(例如,在命令行中使用:printf “0x%x\n” 7067)

  4. 使用 kill -3: kill -3 6974 执行 java 进程的线程转储。输出保存在您启动 eclipse 时重定向的 stdout 文件中

  5. 打开文件并查找线程的十六进制 ID:

    “链接索引器延迟写入-10” prio=10 tid=0x00007f66b801a800 nid=0x1b9b 可运行 [0x00007f66a9e46000]

    java.lang.Thread.State: RUNNABLE

    at com.ibm.etools.references.internal.bplustree.db.ExtentManager$WriteBack.r


答案 2

我在插件上遇到过这个问题,但从来没有使用过Eclipse本身。

您可以尝试通过逐个转到并禁用插件来调试它。Help > About Eclipse > Installation details


推荐