java - 为什么jvm堆内存没有完全使用?
问题描述
我的应用程序启动了许多线程来接收和发送数据,出现内存不足错误,我决定增加堆以便应用程序在出现内存不足问题之前完成进程。
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);
}
当我检查内存的使用情况时,我发现堆没有按预期使用
: Memory Use :16M/4551M
有什么解决方案可以处理堆的整体大小吗?
解决方案
推荐阅读
- java - ITrustFrameworkPolicyCollectionPage“无法解析为类型”
- python - 从python中的第一个前任列表中确定前任和后继链
- kubernetes - 如何删除超过一个月的驱逐 pod
- d3.js - 力图中的意外重叠
- javascript - 如何在带有 React-Router 的 React 中路由到函数内的页面?
- shell - 错误 script_name.sh:第 13 行:[[0:找不到命令
- .net-core - WebAssembly Razor 客户端应用程序在使用管理员角色调用 Azure 中受保护的 API 时返回 401
- python - BeautifulSoup 在标签中查找部分字符串
- swiftui - SwiftUI:如何通过 NavigationLink 将动态生成的参数传递给子视图?
- shopware - Shopware 6 从后端调用 api