2012-04-26 280 views
1

我們必須具有這樣開始的說法Java進程:-Xms5120m -Xmx5120M將JVM分配5G內存如果Xms5120m

JVM會在啓動分配5G內存?

與-Xms1024m -Xmx5120M相比,這是一個很好的做法嗎?

[更新]

即使我設置Xms5120M,它似乎被忽略。當進程啓動時,任務管理器顯示它只使用了大約2G內存。這是爲什麼?

+2

你爲什麼不試試呢? – skaffman 2012-04-26 23:32:26

+0

第二個問題呢? – performanceuser 2012-04-27 00:20:47

+1

你正在運行32位或64位Java? – 2012-04-27 00:45:23

回答

0

java只會分配當時需要的東西。當你告訴它你想要的是-Xmx5G,它告訴計算機在最大。而xms是最小系統內存。如果初始內存堆不會超過5G,而是使用2G,那麼任務管理器只是告訴你2G內存正在使用,但不會顯示你的分配。這表明你的內存堆不會佔用分配內存的全部5G。