JVM client模式和Server模式的區別
2 回答

撒科打諢
TA貢獻1934條經驗 獲得超2個贊
僅是指定服務器啟動時初始化的參數值,這些默認值影響運行時的性能。
普通 PC 就工作在 client 模式就好了,特別是你的內存不是很大時不需要 server 模式,因為 server 模式是為服務器準備的,它的意思就是說這個服務器啟動之后基本上不做別的,所以可以把所有內存都盡量給 JVM 使用,所以才能得到一個更好的性能。
但是 PC 機的話,因為我們頻繁地在多個程序切換,每次把程序帶到前臺窗口或退到后臺窗口都會導致 Windows 操作系統在物理內存和硬盤上的虛擬內存之間切換,這影響性能。一個常見的事情就是我們開著多個程序,并且把 Java 程序切換到最小化,另一個非 Java 程序最大化,然后我們出門吃飯 2 小時后回來把 Java 程序最大化,你會發現這個時候切換到最大化可能需要 15分鐘的時間,這就是內存緊張時虛擬內存和物理內存間交換數據時導致 JVM 頻繁地觸發垃圾收集(GC)導致的性能問題。而這個現象在 server 模式不會出現,因為它是假設服務器專用的,而且基本上沒有前臺程序,都是后臺程序。
JVM 并不能預測什么時候是數據從虛擬內存搬到物理內存,什么時候內存緊張又是從物理內存搬到虛擬內存,因為這是操作系統的事情,它不會讓應用程序知道這件事。反正JVM在這種情況下頻繁地觸發"完全的“垃圾收集就導致性能問題。
- 2 回答
- 0 關注
- 820 瀏覽
添加回答
舉報
0/150
提交
取消