Java 根据给定的参数,JVM使用了多少物理内存?

Java 根据给定的参数,JVM使用了多少物理内存?,java,memory,jvm,Java,Memory,Jvm,我想了解JVM在以下情况下使用了多少物理内存: java-Xms2G-Xmx2G-XX:PermSize512M-version 我假设它使用的最小和最大内存为2GB+512 MB—总共使用了2.5GB的物理内存 内存使用的交换空间何时起作用 参考文献1: 参考文献2: 根据给定的参数,JVM使用了多少物理内存 除了参数外,(虚拟)内存占用空间还因许多因素而显著不同 我假设它使用的最小和最大内存为2GB+512 MB—总共使用了2.5GB的物理内存 首先,内存使用量可能会超过这个数字。由以下各

我想了解JVM在以下情况下使用了多少物理内存:

java-Xms2G-Xmx2G-XX:PermSize512M-version

我假设它使用的最小和最大内存为2GB+512 MB—总共使用了2.5GB的物理内存

内存使用的交换空间何时起作用

参考文献1: 参考文献2:

根据给定的参数,JVM使用了多少物理内存

除了参数外,(虚拟)内存占用空间还因许多因素而显著不同

我假设它使用的最小和最大内存为2GB+512 MB—总共使用了2.5GB的物理内存

首先,内存使用量可能会超过这个数字。由以下各项占用的附加内存:

  • (加载的)可执行和共享库/DLL,包括JVM本机代码库

  • 存放线程堆栈的堆外内存段,以及

  • 堆外内存用于直接映射文件和其他东西,由JVM、应用程序和第三方本机库分配

第二,我们在这里讨论的是虚拟内存的使用,而不是物理内存的使用。物理内存使用量将小于虚拟内存

请注意,实际的物理内存使用情况通常取决于系统对内存的总体需求,并且在系统通过“分页”JVM来处理竞争需求时,可能会出现波动

内存使用的交换空间何时起作用

交换空间通常被分配为JVM进程虚拟内存页的“备份”。如果操作系统需要将物理内存页从JVM中移除以提供给其他应用程序,则它“发挥作用”。这些页面中的JVM状态被写入交换空间,然后用另一个应用程序的状态(例如,从该应用程序的交换空间)加载这些页面,然后映射到地址空间

有关更多信息,请阅读上的维基百科页面

根据给定的参数,JVM使用了多少物理内存

除了参数外,(虚拟)内存占用空间还因许多因素而显著不同

我假设它使用的最小和最大内存为2GB+512 MB—总共使用了2.5GB的物理内存

首先,内存使用量可能会超过这个数字。由以下各项占用的附加内存:

  • (加载的)可执行和共享库/DLL,包括JVM本机代码库

  • 存放线程堆栈的堆外内存段,以及

  • 堆外内存用于直接映射文件和其他东西,由JVM、应用程序和第三方本机库分配

第二,我们在这里讨论的是虚拟内存的使用,而不是物理内存的使用。物理内存使用量将小于虚拟内存

请注意,实际的物理内存使用情况通常取决于系统对内存的总体需求,并且在系统通过“分页”JVM来处理竞争需求时,可能会出现波动

内存使用的交换空间何时起作用

交换空间通常被分配为JVM进程虚拟内存页的“备份”。如果操作系统需要将物理内存页从JVM中移除以提供给其他应用程序,则它“发挥作用”。这些页面中的JVM状态被写入交换空间,然后用另一个应用程序的状态(例如,从该应用程序的交换空间)加载这些页面,然后映射到地址空间


有关更多信息,请阅读上的Wikipedia页面。

No,这些都不包括JAR到内存的映射。您应该在运行时要求服务器提供PID的总驻留内存。@duffymo因为我已经将最小-最大分配为2GB,JVM不会消耗超过2GB的内存。再次出错。您的Java应用程序不仅仅是堆。不,这些都不包括JAR到内存的映射。您应该在运行时要求服务器提供PID的总驻留内存。@duffymo因为我已经将最小-最大分配为2GB,JVM不会消耗超过2GB的内存。再次出错。您的Java应用程序不仅仅是堆。