我在 Eclipse(Windows) 中运行一个程序,需要相对较大的内存。将 传递-Xmx1500m
给程序似乎还不够,而 Eclipse 不允许我分配更大的值。有了这个配置,我得到了内存不足的异常。我将虚拟内存大小增加到40GB
. 有没有办法让我的程序可以使用这个内存?我在 C# 中轻松完成了这项工作,几乎完成了同样的工作。
6 回答
您需要运行64 位 vm才能允许超过 -Xmx1500m
您可以在程序的运行设置中指定它,并且不需要在 eclipse.ini 中应用它,它是用于 eclipse 本身的。
但是:给 java-vm 提供比系统上实际(物理、空闲)内存更多的内存并不是一个好主意,因为 GC 在运行时会遍历内存的许多区域,这将导致读取/从/向磁盘写入内存 - 意味着交换。而这又会导致非常糟糕的表现。在这种情况下,您应该考虑是什么在消耗内存,以及是否有办法在外部管理这些数据 - 在磁盘或一些 MemoryBuffers 上。
ru 使用 32 位 JVM 还是 64 位?使用 64 位 JVM。我不确定 64 位的大小限制,但肯定超过 32 位。
试试这个:java -d64 -Xms512m -Xmx60g YourProgram
它将 60gb 设置为最大堆大小。
您可以在“运行配置对话框”中配置堆大小。
转到留下 eclipse.exe 文件的 eclipse 根文件夹,您会发现 eclipse 配置文件 ( eclipse.ini ) 打开该文件,您需要进行以下更改
我认为您需要增加可供日食使用的内存。
修改文件中的-Xmx
选项eclipse.ini
(在 Windows 机器中)。
在您解压缩 Eclipse 的地方,eclipse.ini
在其中查找修改它