我遇到了一個我寫的java應用程序導致硬件性能問題的問題。問題(我相當確定)是,我運行應用程序的一些機器只有1GB的內存。當我啓動我的Java應用程序時,我將堆大小設置爲-Xms 512m -Xmx 1024m內存耗盡Xmx和Xms的一面
我的第一個問題是,我的假設是正確的,這顯然會導致性能問題,因爲我將所有機器內存到java堆?
這導致了另一個問題。我在應用程序上運行jconsole並監視應用程序的內存使用情況。我所看到的是該應用程序在啓動時消耗約30mb,達到約150mb垃圾收集器運行,它回落到30mb。我也看到使用頂部的pid的應用程序開始使用大約6%的內存,然後慢慢攀升到20%左右,我不明白這一點。爲什麼當我爲它分配1GB時,它只能達到20%的內存使用量,不應該達到100% 。此外,爲什麼當它沒有出現應用程序使用超過150MB的時候,它使用了那麼多的內存(20%)?
我認爲它很明顯我需要調整我的XMS和XMX,這應該可以解決問題,但我試圖更好地瞭解究竟發生了什麼。對於內存使用