1. 程式人生 > >解決linux下,Eclipse系列軟體執行時閃爍,CPU佔用高,一段時間後卡死

解決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佔用高,這個方法完全沒有效果。