为什么jvm堆内存未完全使用?

时间:2018-06-20 08:56:59

标签: java linux jvm out-of-memory heap-memory

我的应用程序启动了许多线程来接收和发送数据,出现内存不足错误,我决定增加堆,以便应用程序在出现内存不足问题之前完成该过程。

a = [{'week': '23', 'total_entry': 1}, {'week': '23', 'total_entry': 4}, {'week': '24', 'total_entry': 2}]

from collections import defaultdict
j = defaultdict(int)
for i in a:
    j[i['week']] += i['total_entry']
print(j)

当我检查内存使用情况时,发现没有按预期使用堆

   java -Xmx5120M -jar peer100.jar config

}catch ( OutOfMemoryError  e) {
        System.out.println("out of memory");
        MemoryUsage heapUsage = memoryBean.getHeapMemoryUsage();
        long MEGABYTE = 1024*1024;
        long maxMemory = heapUsage.getMax() / MEGABYTE;
        long usedMemory = heapUsage.getUsed() / MEGABYTE;   
        System.out.println(" : Memory Use :" + usedMemory + "M/" + maxMemory + "M");

        System.exit(0);

    }

有什么解决方案可以处理堆的整体大小吗?

0 个答案:

没有答案