2010-11-22 78 views
0

我開始在Java程序使用以下命令的JVM:爲什麼使用更多的內存比我分配

的Java -Xmx32m罐子溫斯頓 - lite.jar --warfile = myWarFile.war

而不是使用我指定的內存量,它仍然分配144米。

編輯: 當我說分配,我的意思是當我看「頂」的過程中,我看到144m的內存使用量。

我正在使用http://www.oracle.com/technetwork/java/embedded/documentation/index.html當前版本。

我會想,如果我的應用程序需要更多的內存比我分配的jvm會崩潰。

回答

3

-Xmx只是告訴JVM有多少內存可用於其內部堆。

JVM需要內存用於其他目的(永久生成,臨時空間等),像每個二進制文件一樣,它需要空間來存儲它自己的二進制代碼,以及它加載的任何庫/ DLL/.so。

您引用的144個MiB可能至少包含其中一些其他內存用途。

你是如何測量內存使用量的?在使用虛擬內存的現代操作系統上,測量進程的內存使用情況並不十分簡單,並且不能表示爲單個值。

+0

我從頂層命令獲得144米。操作系統是Ubuntu的。 – predhme 2010-11-22 16:40:05

相關問題