為什么會在機器上出現不只一個守護進程

2018-07-01 16:35 更新

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

空閑的守護進程是當前未執(zhí)行構建或做其他有用的工作.

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

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

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

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

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

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

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

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


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號