2013-02-25 105 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