当前位置: 首页 > 知识库问答 >
问题:

JVM可以自动使用更多的交换空间来防止内存不足错误吗

华季同
2023-03-14

共有1个答案

卓正业
2023-03-14

进程永远不知道它们使用的内存的哪些部分在虚拟内存中,哪些在物理内存中。

它是由操作系统以透明的方式管理的。通常,使用最多或最近使用的内存“块”(正确的术语是“页”)保存在物理内存中。程序只是需要内存,操作系统是分配内存并决定每一页的位置(虚拟的或物理的)的程序。

若要使用某块内存,必须在物理内存中的页面上使用该内存。将内存页从虚拟移动到物理是相当昂贵的,所以必须尽量避免。因此,您通常指定堆小于物理内存,以允许OS尝试将所有堆保留在物理内存中(注意,您应该为OS和其他应用程序留出额外的物理内存)。

 类似资料:
  • 问题:我运行< code>mvn全新安装-dskipstest 并得到 更多信息: > < li> 操作系统:OS X (16 GB内存) Java配置:位于< code > ~/Libraries/Preferences/intelli jide a13/Idea . vmoptins 和< code > Applications/IntelliJ \ Idea \ 13.app/bin/ide

  • 问题内容: 我正在研究真正了解JVM中内存分配的工作方式。我正在编写一个内存不足的应用程序:堆空间异常。 我知道我可以传入VM参数(例如Xms和Xmx)来增加JVM为正在运行的进程分配的堆空间。这是解决此问题的一种可能的解决方案,或者我可以检查代码是否存在内存泄漏并在那里解决问题。 我的问题是: 1)JVM如何实际为其分配内存?这与OS如何将可用内存传递给JVM有什么关系?或更一般而言,任何进程的

  • 我想真正了解内存分配在JVM中是如何工作的。我正在编写一个内存不足的应用程序:堆空间异常。 我知道我可以传入VM参数,如Xms和Xmx,以增加JVM为正在运行的进程分配的堆空间。这是一个可能的解决方案,或者我可以检查我的代码内存泄漏并修复那里的问题。 我的问题是: 1)JVM实际上如何为自己分配内存?这与OS如何将可用内存传递给JVM有什么关系?或者更一般地说,为任何进程分配内存实际上是如何工作的

  • 我正在使用Nodejs。我计划增加Nodejs应用程序的内存限制。 在谷歌上搜索时,我发现了这篇文章:增加节点。js内存限制。 作者说他的服务器只有8GB的物理内存,但他的Nodejs进程使用的是28GB的内存。我假设它正在使用物理交换内存。文章还提到,一个著名的Nodejs框架的开发人员为他的Nodejs使用了15GB的内存限制。 我试图从其他编程语言中搜索一些示例。在Java中,将交换内存用于

  • 问题内容: 首先,我想提一下,我有一个3 GB的内存。 我正在研究一种在节点上时间呈指数形式的算法,因此在代码中已经有了 生成列表中所有顶点的组合,然后我可以处理其中一种排列。 但是,当我为40个顶点运行程序时,它给出了内存错误。 有没有一种更简单的实现方式可以通过它生成顶点的所有组合而不会出现此错误。 问题答案: 尝试使用由排列生成的迭代器,而不是用它重新创建一个列表: 通过这样做,python

  • 问题内容: 我是Netbeans中这种错误的新手。我一直在使用Java Bean 8.0.2在Java J2SE中工作。我正在对字符串进行模糊搜索,通常字符串长度为300-500。我正在使用Levenshtein和Jaro Winkler算法来查找字符串之间的距离。大约有1500次迭代来查找字符串之间的距离!问题是我的Net Bean通常会为以下内容提供错误: 我已经在线进行了一些搜索来摆脱此错误