簡介:-XX:parallelGCThreads = 8是否涉及與Amdahl定律相關的核心數量?
我目前工作的一個軟件,我用基準多線程一個順序程序。我的硬件有24核心和16GB的RAM。我的程序是用Java編寫的,但是由於需要繪圖而從MATLAB執行。在MATLAB的開口將顯示以下信息:
Picked up JAVA_TOOL:OPTIONS: -XX:parallelGCThreads = 8 - Xmx8g -Dsun.java2d.pmoffscreen = false
理論
現在按照Amdahl's Law的maksimum性能的提高將被定義爲1 /(B-(1-B)/ P) ,其中B是連續分數,P是處理器的數量。 在我來說,我有B = 0.01,(1-B = 0.99)和P = 24 這給我的身邊20.
一個理論上的最大性能提升現在,我的理解parallelGCThreads
它是最大可用的垃圾收集器線程數。在對我的程序進行了一些深入測試之後,似乎我已經能夠實現的最大比率增加是7.5倍,這不是理論上接近20的地方。然而,如果我替換P = 8,我得到的理論極限爲7.8這與我的程序中獲得的非常接近。
問題
是否parallelGCThreads
實際限制,使得Amdahl定律應與P = 8,而不是P = 24使用的線程數量?
在此先感謝!
謝謝你的回答,我非常讚賞它。你幾乎可以回答與此事有關的任何事情。我對這個問題沒有多大的瞭解,但是當Amdahls比率在19.5左右時,速度比爲7.5時是正常的嗎? 你會說什麼是通常的'嫌疑犯'放慢我的程序?你會做什麼來識別它們? – SteewDK