java - 仅在特定计算机上的 Java 堆空间内存不足
问题描述
在我们开始之前,因为答案似乎很明显,所讨论的机器将最大堆空间设置为 8GB,而其他能够运行它的机器将其设置为 1GB,因此这不是最大堆大小问题。好吧,让我们潜入。
我正在为一个学校项目进行交通模拟,由于时间限制,我们做了很多“快速而肮脏”的解决方案,导致无法正确优化我们的内存使用。在过去的两周里,我们花时间分析我们的程序,识别内存泄漏,并降低精度以使我们的整体内存开销达到 500MB 左右(根据 JProfiler)。
问题是,只有某些笔记本电脑能够运行模拟。我的笔记本电脑(16GB RAM,i7 CPU)无法运行 sim。当然,我做的第一件事是逐步增加 JVM 的最大堆空间,一直增加到 8GB。问题是,根据 JProfiler 的说法,我们在编译后最大内存约为 1GB,然后在整个 sim 中下降到稳定的 500MB。
所有组成员都运行相同版本的 Java (9) 和相同的 SDK 版本。我们甚至尝试过使用不同版本的 Java,但均无济于事。我正在使用最新版本,并多次验证我们在完全相同的环境中运行完全相同的程序并具有完全相同的设置,但由于某种原因,只有我的计算机存在堆空间问题。
有没有人知道这里可能出了什么问题?我重新安装了 JVM 无济于事,并在编译期间监视我的计算机,我看不到任何时候使用的内存超过 2-3GB,所以我显然没有使用我提供的所有 8GB 堆空间虚拟机。似乎有严重错误,任何帮助将不胜感激!
解决方案
推荐阅读
- java - 我应该如何将 mockito 用于对象内部的对象然后值
- amazon-web-services - 如何使用 mariadb 创建 ebs Elastic Beanstalk 应用程序
- microsoft-graph-api - Microsoft Graph API Outlook 任务文件夹:NoPermissionsInAccessToken
- html - 验证错误 W3c
- react-native - React-Native 无法解析配置“:classpath”的所有工件
- php - 是否有任何数组函数可以将数组值作为键,将其他值作为该键的值?
- laravel - 在 laravel 5.7 中登录的购物车
- pandas - 根据过去 3 个月和去年的这个时间分离数据
- ios - 错误:在添加平台 iOS 时运行子进程 Cordova 时发生
- python-3.x - Python IF 语句给出“无效语法”错误。请让我知道可能是什么原因