请教一下关于JVM内存的问题。
Runtime t = Runtime.getRuntime();
System.out.println(t.totalMemory() / 1024 / 1024);
System.out.println(t.maxMemory() / 1024 / 1024);
环境:Win7 64位,4G内存,JDK7,HotSpot VM
没有设置JVM参数的情况打印如下:
15
247
第一个问题:这两个默认值不同环境下是不是打印的不一样?有没有什么规则可以算出来这个默认值的或者说是什么因素在影响这个默认值?
设置JVM参数-Xmx1000m -Xms500m打印如下:
483
966
第二个问题:我的理解-Xmx设置堆内存最大值,maxMemory()返回堆内存可使用最大值,难道是我理解有误,不然为什么会设置和打印的不一样?
System.out.println(t.totalMemory() / 1024 / 1024);
System.out.println(t.maxMemory() / 1024 / 1024);
环境:Win7 64位,4G内存,JDK7,HotSpot VM
没有设置JVM参数的情况打印如下:
15
247
第一个问题:这两个默认值不同环境下是不是打印的不一样?有没有什么规则可以算出来这个默认值的或者说是什么因素在影响这个默认值?
设置JVM参数-Xmx1000m -Xms500m打印如下:
483
966
第二个问题:我的理解-Xmx设置堆内存最大值,maxMemory()返回堆内存可使用最大值,难道是我理解有误,不然为什么会设置和打印的不一样?
...全文
相关推荐
JVM内存溢出问题解析
JVM 内存溢出问题解析JVM 内存溢出是指程序运行所需的内存大于虚拟机能提供的最大内存的情况。
JVM内存问题最佳实践
### JVM内存问题最佳实践#### 一、选择合适的Java虚拟机在选择Java虚拟机(JVM)时,有几个关键因素需要考虑。首先,确保选择一个稳定的版本是非常重要的。
1. JVM 内存结构的组成、各部分功能作用,学会利用内存诊断工具排查内存相关问题;2. JVM 的招牌-jvm.zip
Java虚拟机(JVM)是Java程序运行的基础,它负责解析和执行字节码,提供了一个与硬件平台无关的运行环境。了解JVM内存结构及其功能对于优化Java应用程序的性能和排查内存问题至关重要。
JVM堆内存溢出后,其他线程是否可继续工作的问题解析
JVM堆内存溢出后,其他线程是否可继续工作的问题解析JVM堆内存溢出是Java开发中常见的问题之一,当堆内存溢出时,其他线程是否可继续工作?这是一道经典的面试题。
解决JVM实际使用的内存比-Xmx的少的问题.docx
### 解决JVM实际使用的内存比-Xmx设置的值小的问题#### 一、问题背景与初步探索本文旨在探讨并解决一个常见的Java虚拟机(JVM)内存管理问题:为何JVM实际使用的最大内存容量有时会小于通过


Java SE
