实际工作中遇到一个这样的问题:
一个400m的csv文件需要写入到一个hashmap中,然后根据键值进行查询。
因为文件比较大,所以会出现内存溢出的问题。
首先第一个问题,400m的文件不好一次性放入一个hashmap中,里面有将近1000w条数据,因此把这个文件分成十个csv文件。
第二个问题,读取100w条数据时,还是出现了内存溢出。
这个时候打开任务管理器,看进程发现,一个javaw.exe程序每次内存到80m时,就涨不上去了,系统提示内存溢出,outofmemory。
这个时候单击右键,点run as>run configurations>arguments>Vm arguments>
加入这句话:
-Xms 500m
-Xmx 1000m
就ok了。
这是给单个的java main函数配置单独的运行内存大小。
其他的java类如果也是内存溢出的话,按照上面的方法重新配置就行了。
----------------------------
11.30更新
-Xms500m
-Xmx1000m
中间没有空格