我试图解决一个困扰我一段时间的问题。简而言之:应该在什么基础上为占用资源的应用程序分配最大堆空间,tit 太大是否有不利影响?
我有一个用于可视化大量医疗数据的应用程序,如果并排打开多个成像卷,它可能会占用多达几 GB 的内存。缓存要查看的数据对于流畅的工作流至关重要。该软件受 Windows 工作站支持,并由引导加载程序启动,该引导加载程序分配堆大小并启动主应用程序。主应用程序所需的实际内存与正在查看的数据成正比,并且无法由引导加载程序确定,因为它需要读取数据,最终会消耗太多时间。
因此,为了确保 JVM 在启动期间有足够的内存,我们根据当前的设计,根据工作站的最大物理内存设置了尽可能大的 xxx。但是,这有什么缺点吗?我已经读到(来自 2008 年的一篇文章),本机进程可能会占用过多的堆空间,这可能会导致运行时出现内存错误。在分配堆空间之前,我是否还应该嗅探空闲虚拟内存或分页文件大小?你会如何处理这种情况?
哦,这是我在这些论坛上的第一篇文章。很高兴认识大家,温柔点!:)
更新:
感谢所有的答案。我不确定我的话是否正确,但我的问题源于我对将运行该软件的硬件的了解为零,但仍然希望为该软件分配尽可能多的堆空间.
如果有足够数量的可用虚拟内存,我找到了一个分配 70% 的物理内存堆的解决方案 - 否则更少。