2013-02-25 143 views
1

我在Eclipse(Windows)中運行程序,需要相對較大的內存空間。將-Xmx1500m傳遞給程序似乎不夠,而Eclipse不允許我分配更大的值。有了這個配置,我得到了內存不足的異常。 我增加了虛擬內存大小到40GB。沒有辦法讓這個內存可用於我的程序嗎?我用C#輕鬆完成了這項工作,幾乎完成了同樣的工作。在Eclipse中增加Java堆大小 - 使用虛擬內存

+0

你怎麼不把傳遞參數爲你的程序。 – 2013-02-25 06:39:55

+0

你必須在eclipse中爲你的程序設置參數。如果您需要超過4GB的內存,則需要64位mashine和64位JVM。 – neohope 2013-02-25 06:42:31

+0

你的意思是可以傳遞-Xmx30000m參數? – 2013-02-25 06:43:32

回答

1

我認爲你需要增加可用於eclipse的內存。 (在Windows機器上)修改-Xmx選項。

2

您是否使用32位JVM或64位? 使用64位JVM。 我不確定64位的大小限制,但絕對超過32位。

試試這個: java的-d64 -Xms512m -Xmx60g YourProgram

這臺60GB的最大堆大小。

+1

他正在嘗試使用eclipse運行程序,而不是在命令提示符下運行。這無疑會起作用。 – asifsid88 2013-02-25 06:50:13

+0

32比特= 2^32比特= 4Gib 64比特= 2^64比特= 16EiB 單個比特大於1.000.000.000然後1GB;) – SomeJavaGuy 2013-02-25 06:51:28

1

您解壓縮日食,尋找eclipse.ini在修改enter image description here

3

你需要運行64位VM允許不是圍繞-Xmx1500m

更多您可以指定在運行你的程序的設置,並不需要將它應用於eclipse.ini,它是用於eclipse本身的。

但是:給系統提供java-vm的內存比真實的(物理的,空閒的)內存不是一個好主意,因爲當GC運行時GC會遍歷內存的很多區域,將導致從/向磁盤讀/寫內存 - 意味着交換。而這又會導致一個非常糟糕的表現。在這種情況下,你應該考慮什麼是消耗內存,以及是否有辦法在外部管理這些數據 - 在磁盤或某些MemoryBuffers上。

2

您可以在「運行配置對話框」中配置堆大小。

0

轉到你的eclipse根文件夾的eclipse.exe文件留下,你會發現Eclipse配置文件(的eclipse.ini)打開該文件,你需要以下變化enter image description here