2010-07-30 83 views
30

我正在尋找運行Alfresco的JVM配置選項,主要是Alfresco Wiki上的this文檔。其中一個建議是使用JVM標誌-Xcomp-Xbatch。這樣做的理由是:Java虛擬機調優-Xbatch和-Xcomp

如果您希望使用Hotspot預編譯類,您可以添加[-Xcomp和-Xbatch]。但是,這會顯着增加服務器啓動時間,但會突出顯示未來可能會發生的缺失依賴關係。

從我有read elsewhere-Xcomp-Xbatch標誌,我想知道他們是否真的帶來任何好處。

  • -Xcomp獲取HotSpot預先編譯所有代碼並進行最大化優化,從而完成虛擬機通過標準系統運行所需的任何分析。
  • -Xbatch停止後臺編譯,這意味着導致代碼被編譯的線程塊,直到編譯完成。但是,編譯完成後,先前被阻止的線程將不會運行編譯代碼,it will still run the interpreted code。這是Java 6(Mustang)中的一個變化 - Mustang之前,只要編譯完成,由編譯代碼保證在-Xbatch標誌的存在下編譯的線程被阻止運行。因此,我猜測-Xbatch標誌的建議是在較舊的虛擬機上運行Alfresco的遺蹟。

有沒有人有任何想法?我的傾向是擺脫這兩個標誌,並依靠虛擬機來讓事情正確。

我想添加兩件事,首先我還沒有訪問一個Alfresco實例來測試這個,其次我真的不知道什麼樣的機器託管Alfresco除此之外查看其他配置選項,它必須是64位虛擬機。儘管如此,我希望社區能夠從一般的熱點調優角度提供一些有用的意見。

+0

Alfresco頁面上的真實世界示例部分是2009年8月,它似乎是JDK 1.6? – shinynewbike 2010-08-03 12:47:33

+0

@ktaylorjohn是的,這是正確的,但我只是想知道-Xbatch和-Xcomp標誌是否有所作爲。 Alfresco似乎是唯一一個在JVM測試和類似領域之外提到這些標誌的項目。 – Rich 2010-08-03 13:35:35

回答

21

一般來說,最好讓HotSpot編譯器自行調整。即使使用服務器虛擬機(-server)也是默認的64位和一些「服務器級」計算機。

-Xbatch的目的主要是用於調試中Steve Goldman's blog描述你指出:

所以-​​Xbatch開關甚至沒有在預野馬天一個特別有用的開關。這對jvm開發人員來說有點用處,因爲它往往會使運行更具可預測性和可重複性。

-Xcomp刪除了爲高效編譯收集信息的能力。從Alex Turner's post

有人可能會認爲-Xcomp從性能角度來看是一個好主意。但是,它不是! JIT編譯器在編譯之前使用這1000次迭代來收集有關如何編譯方法以實現最佳效率的信息。 -Xcomp消除了這樣做的能力,因此我們實際上可以看到性能下滑。

不考慮性能,我從來沒有見過使用這些標誌來檢測丟失的依賴關係(and it may not work if some code is still interpreted),所以恕我直言,我會擺脫兩者。

+0

鏈接是死的順便說一句 – Eugene 2018-02-26 21:22:19

0

Alfresco是企業內容管理。我不確定旗幟如何影響它的表現。然後在同一頁上說一個音符..但是,這將顯着增加服務器啓動時間,但會突出顯示缺少的依賴關係,以後可能會被點擊。 ...

恕我直言,作者並不是真的意味着性能增益。他/她將其作爲手段來檢查所有依賴關係是否到位。