Java限制内存

use*_*974 2 java eclipse memory

当我尝试初始化一个大数组时:

double [][][] test = new double[500][500][500];
Run Code Online (Sandbox Code Playgroud)

出现错误:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at tests.Test.main(Test.java:6)
Run Code Online (Sandbox Code Playgroud)

当我给java提供参数时,内存太大:

-Xmx2048m
Run Code Online (Sandbox Code Playgroud)

出现错误:

Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap
Run Code Online (Sandbox Code Playgroud)

文字是黑色的.


任务经理说

Physical Memory: 44%

从我的电脑我有这些统计数据:

Windows 7旗舰版

处理器:Intel(R)'Core(TM)i5-3470 CPU @ 3.20GHz

已安装内存(RAM):8,00 GB(可用7,89 GB)

系统类型:64位操作系统

Kar*_*cki 8

A double是8个字节.你的阵列500 * 1000 * 1000 * 8大约是3.8 GB.

您需要分配一个更大的堆来容纳此数组,尝试-Xmx5g为您的应用程序的其余部分留出一些额外的内存.