為什么會在機(jī)器上出現(xiàn)不只一個守護(hù)進(jìn)程

2018-07-01 16:35 更新

有幾個原因Gradle會創(chuàng)建一個新的守護(hù)進(jìn)程代替使用一個已存在的守護(hù)進(jìn)程.如果守護(hù)進(jìn)程沒有閑置,兼容,則會啟動一個新的守護(hù)進(jìn)程.

空閑的守護(hù)進(jìn)程是當(dāng)前未執(zhí)行構(gòu)建或做其他有用的工作.

兼容的守護(hù)進(jìn)程是一個可以(或者可以達(dá)到)滿足要求的編譯環(huán)境的要求。Java安裝程序運(yùn)行的構(gòu)建是構(gòu)建環(huán)境方面的一個例子。構(gòu)建運(yùn)行時所需的JVM系統(tǒng)屬性是另一個例子。

一個已經(jīng)運(yùn)行的Java進(jìn)程可能不能滿足所需的構(gòu)建環(huán)境的某些方面。如果守護(hù)進(jìn)程由Java7啟動,但要求的環(huán)境要求為Java8,則守護(hù)進(jìn)程是不兼容的,必須另外啟動。再者,在運(yùn)行的JVM不能改變一個運(yùn)行時的某些性能。如內(nèi)存分配(如-Xmx1024m),默認(rèn)文本編碼運(yùn)行的JVM中,默認(rèn)的語言環(huán)境,等等一個JVM不能改變的運(yùn)行環(huán)境。

"Required build environment"通常在構(gòu)建客戶端(如Gradle命令行,IDE等)方面隱含構(gòu)建環(huán)境,并明確通過命令行選項(xiàng)設(shè)置.參見Chapter 20,The Build Environment有關(guān)如何指定和控制構(gòu)建環(huán)境的詳細(xì)信息.

一下JVM系統(tǒng)屬性是有效不變的.如果需求編譯環(huán)境需要這些屬性,不同的守護(hù)進(jìn)程JVM在下列屬性中有不同的值時,守護(hù)進(jìn)程不兼容.

  • file.encoding
  • user.language
  • user.country
  • user.variant
  • com.sun.management.jmxremote

下列JVM屬性,通過啟動參數(shù)控制,也是有效不變的.在需求構(gòu)建環(huán)境和守護(hù)進(jìn)程環(huán)境的對應(yīng)屬性必須按順序完全匹配,才可兼容.

  • 最大堆大小(即 -Xmx JVM參數(shù))
  • 最小堆大小(即 -Xms JVM參數(shù))
  • 引導(dǎo)類路徑(即 -Xbootclasspath JVM參數(shù))
  • "assertion"狀態(tài)(即 -ea 參數(shù))

所需的Gradle版本是需求構(gòu)建環(huán)境的另一個方面.守護(hù)進(jìn)程被耦合到特定Gradle運(yùn)行時,多個正在運(yùn)行的守護(hù)進(jìn)程產(chǎn)生的原因是使用使用不同版本的Gradle會在會話過程中處理多個項(xiàng)目.


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號