簡體   English   中英

Eclipse Gradle插件產生了數百個進程

[英]Eclipse Gradle plugin spawning hundreds of processes

當我使用Gradle插件啟動Eclipse時,有時實際上會突然產生數百個Java進程。 他們看起來像這樣:

26000 pts / 24 Sl 0:01 / usr / lib / jvm / default-java // bin / java -Dfile.encoding = utf-8 -Xmx512m -XX:MaxPermSize = 128m -XX:+ UseG1GC -Dorg.gradle.appname = gradlew -classpath /[...]/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain [項目名稱]:eclipseExternalBuild-按需配置-Dorg.gradle.parallel = false

26230 pts / 24 Sl 0:04 /usr/lib/jvm/jdk1.7.0_51/bin/java -XX:MaxPermSize = 2048m -Xmx4096m -Dfile.encoding = UTF-8 -cp [...] /。gradle /包裝器/dists/gradle-1.8-all/2kopnp0i5dq014k75fp36m3vd5/gradle-1.8/lib/gradle-launcher-1.8.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 1.8 [...] /。gradle / daemon 10800000 4d4119b1- c332-4714-b0cd-1e80bc6dd78f -XX:MaxPermSize = 2048m -Xmx4096m -Dfile.encoding = UTF-8

第一種過程看起來像Eclipse在構建事物。 我的工作區中的每個項目似乎至少有一個過程(有時多達6個!)。 他們在幾分鍾后消失了,這是合理的。

令人討厭的是,我不知道所有GradleDaemon都在做什么。

在Eclipse中啟用了Gradle依賴性管理。 我在Ubuntu 14.04上使用Eclipse 4.4和Gradle 1.8。

我該如何解決? 當我的計算機開始無響應時,我基本上每隔幾個小時就會調用killall -9 java

我不知道我是否可以為您解決問題,但至少我可以在這里為您提供一些指導。 創建Eclipse啟動后的第一組守護進程,以獲取項目模型以填充項目的類路徑。 如果他們很快死掉,他們可能會有一些短暫的超時。

對我而言,進程26000看起來更像是命令行調用,而不是Eclipse插件啟動的進程。 /usr/lib/jvm/default-java//bin/java兩個連續的斜杠對我來說似乎很奇怪。 您是否在JAVA_HOME中設置了斜杠?

如果您有這么多進程同時運行,則每個構建請求都可能會啟動一個新超時3小時的超時請求(輸出中為10800000 millis參數)。 您可以使用系統屬性自定義超時,但是最好找到Gradle為什么不重用已經運行的守護進程的原因。 假設守護程序使用相同的JVM,相同的JVM參數集以及可能存在其他一些約束,則應這樣做。 Gradle用戶主目錄中有日志,您可以檢查任何可疑消息。

另外,我還將使用線程轉儲檢查其中一些過程,以查看是否存在死鎖/飢餓,從而阻止其正常處理。 即,如果他們沒有完成構建執行,則它們將不會再用於下一個構建請求,並且可能在超時后也不會退出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM