解決linux下,Eclipse系列軟件運行時閃爍,CPU佔用高,一段時間後卡死

軟件包括

xmind
dbeaver
truestudio
eclipse

原因分析

在linux下,eclipse的圖形界面實現主要是GTK,用到了org.eclipse.equinox.launcher.gtk.linux.x86_64這個模塊。

但是這個模塊在默認執行系統安裝的gtk組件,目前我所遇到的情況是,一旦運行在gtk3的時候,生成的軟件界面會不斷閃爍,內存使用量不斷增加(假設標準情況下是300M左右,內存使用量會逐漸增加到500M,甚至更高,比如xmind,直接佔光內存)

可能是在使用GTK3的時候,有內存泄露的情況,更具體的原因,我沒有找出來。

解決方法

和我的博客https://mp.csdn.net/postedit/78648658所使用的方法一致。

首先找到軟件安裝目錄下的配置文件。
比如:
xmind的配置文件在/usr/share/xmind/XMind/XMind.ini
dbeaver的配置文件在/usr/share/dbeaver/dbeaver.ini

文件內容一般是

@user.home/.xmind/configuration
-data
@user.home/.xmind/workspace
-startup
/usr/share/xmind/plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
--launcher.library
/usr/share/xmind/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444
--launcher.defaultAction
openFile
--launcher.GTK_version
2
-eclipse.keyring
@user.home/.xmind/secure_storage_linux
-vmargs
-Dfile.encoding=UTF-8

注意看是否有這麼一行
/usr/share/xmind/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444 --launcher.defaultAction
如果裏面存在org.eclipse.equinox.launcher.gtk.linux.x86_64,這就意味着調用了GTK的庫。我的修改方法會生效。

如同上面的代碼所示範的,在配置文件中添加一行參數

--launcher.GTK_version
2

目的是強制指定使用的GTK版本爲2
改成GTK2以後有缺點,就是鼠標的指針在單擊以後有一定的卡頓感覺,這個在拖動窗口元素的時候能夠感覺出來,其他時候,運行是完全正常的。
至少,窗口不再閃爍,也不會突然卡死。

如果沒有org.eclipse.equinox.launcher.gtk.linux.x86_64,我的方法不一定會奏效。如果有相關的解決辦法,或者更底層的解決辦法,請聯繫我。

解決方法補充

網上也有增加軟件運行時虛擬機的內存大小的方法,現補充如下

同樣是打開配置文件,在裏面添加

-Xms64m
-Xmx1024m
-XX:PermSize=256M
-XX:MaxPermSize=1024M

這個大小自己隨意設置,儘量大一些,多給jvm虛擬機一些內存,可以延遲卡死的時間。

對於我這種因爲內存溢出,cpu佔用高,這個方法完全沒有效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章