我的eclipse有时会自发地开始使用100%的CPU。我不明白为什么它需要那么多的CPU使用率。没有像“构建工作空间”这样的后台任务在运行。
一段时间后,CPU负载降至0,一切正常。
我在workspace/.metadata/.log
文件中找不到任何与该问题相关的信息。
有没有人能告诉我,Eclipse的哪一部分使用了如此多的CPU?有没有办法获得Eclipse的线程转储?Eclipse进程上的kill -3
什么都不做。
Eclipse版本:伽利略JavaEE
操作系统:Linux操作系统2.6.31
6条答案
按热度按时间k2arahey1#
听起来像垃圾收集
您可以尝试更改eclipse.ini中的设置,也许使用更高的Xmx值
pwuypxnk2#
您可以使用visualvm来分析eclipse,获取堆转储或线程转储,查看哪些线程正在运行,等等。
46scxncf3#
如果其他人也有这个问题,我自己解决了它。将选项“自动构建项目”设置为关闭。这应该会删除Eclipse使用的大量CPU。
sg2wtvxw4#
对于我的安装,我注意到堆状态指示器(Enabled VIA Window〉Preferences“Show heap status”under General)显示的最大堆比eclipse.ini(-Xmx设置)中分配的要少。状态指示器来回跳动,表明垃圾收集正在努力保持低内存。
增加初始/最小堆大小(-Xms设置)似乎已经导致Eclipse/Java停止尝试管理内存。
6ljaweal5#
Eclipse在需要的时候从内存中加载和卸载信息。如果您的工作空间很大,并且您要处理多个项目,而且您的eclipse配置为使用低内存,这是正常的。上面有人建议更改xmx和xms值,以便您的eclipse使用更多内存(如果您有)我建议您给它们设置相同的值。例如-Xms 4048 m和-Xmx 4048 m这样,在启动IDE后,系统将尝试利用该空间,垃圾收集器(GC)处理数据所需的时间将更短。
ghg1uchk6#
对我来说,解决方案是给Eclipse提供更少的线程。
解决方案:减少Eclipse可以使用的最大线程数,减少到计算机的1/2。超线程),然后将Eclipse可以使用的最大线程数减少到4,或者**〈=系统内核数的一半**,如下所示:
在Linux Ubuntu上的
$HOME/eclipse/cpp-2022-09/eclipse/eclipse.ini
中,或者在您的操作系统上的等效版本中,进行以下更改(在我的示例中,从最多10个线程减少到4个):更改 * 自:*
重新启动Eclipse。
现在,Eclipse最多只能占用我8个线程中的4个,我的系统运行得好多了!
请阅读我的详细回答,了解更多细节以及我为帮助您所做的其他更改:High CPU usage in Eclipse when idle