2014-02-19 24 views
0

我不確定這是否是一個有效的計算器溢出問題!在使用windows netbeans中忽略最大內存大小

我已經在windows xp機器上安裝了netbeans。但是這臺機器的內存非常有限。由於Netbeans使用大部分內存,我想限制Netbeans使用的內存大小。

從我可以在此閱讀page的是,我可以使用的-J-Xmx256m開關或–J-XX:MaxPermSize交換機配置文件裏面:./etc/netbeans.conf

所以我改成了這樣:

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:MaxPermSize=256m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true" 

我想這兩個選項,但是NetBeans的要麼不啓動或如果它開始不堅持新政策。當它啓動時,我看到在我的任務管理器中netbeans的內存增加到指定的256MB以上。

我在做什麼錯?

回答

0

在Java中有更多類型的內存。使用MaxPermSize您正在增加用於存儲關於您的類的「靜態」信息的permgen內存的最大值。你想增加你的「動態」數據的內存。這是堆,並使用-J-Xmx。您可以使用jvisualvm驗證您的設置。

所以要增加你堆嘗試是這樣的:如果你使用的是32位Java你的內存比較有限,以我想1克

-J-Xmx512m 

。如果您使用的是無效(太大)設置,Netbeans將無法啓動。

Netbeans在其內存顯示中顯示的內存是PermGenSpace和堆的添加。再次:調查jvisualvm來控制每種內存類型的使用設置。

+0

感謝您的答覆。我想減少內存使用量而不是增加它。我已經嘗試過Xmx選項,但這也不起作用。 Netbeans仍然拒絕堅持新政策! –

+1

Netbeans在內存顯示中顯示的內存是PermGenSpace和Heap。也許這是你的問題。再次:調查jvisualvm來控制每種內存類型的使用設置。 – wumpz

+0

所以爲了將內存限制到256我必須將PemGen和堆都設置爲128? –

1

首先,你需要知道-XX:MaxPermSize-Xmx空間之間的區別:

-Xmx指定其中包含Java虛擬機(JVM)的最大內存分配池:

  • 伊甸園空間(堆) :內存最初爲大多數對象分配的池。
  • 倖存者空間(堆):包含在Eden空間的垃圾收集中存活的對象的池。
  • 時間生成(堆):包含在生存者空間中存在一段時間的對象的池。

-XX:MaxPermSize是包含虛擬機本身的所有反射數據(例如類和方法對象)的池。對於使用類數據共享的Java虛擬機,這一代分爲只讀和讀寫區域。

二:你在你的netbeans_default_options一個錯誤的參數,它是-J-Xss2m

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m ... 

您需要將其更改爲類似:

netbeans_default_options="-J-client -J-Xmx256m -J-Xms32m ...// or something like that