Java增加内存
时间:2020-02-23 14:37:10 来源:igfitidea点击:
Java内存模型指定Java虚拟机如何使用计算机内存(内存)工作。在本教程中,将介绍如何配置Java使用的内存。
Java内存模型
JVM内部使用的Java内存模型将内存分为线程堆栈和堆,每个运行在JVM中的线程都有自己的线程堆栈, 线程堆栈包含线程调用了哪些方法来到达当前执行点的信息。它还包含每个正在执行的方法的所有局部变量。
基本类型的所有局部变量(
boolean
,
byte
,
short
,
char
,
int
,
long
,
float
,
double
)完全存储在线程堆栈上,因此对其他线程不可见。
堆包含Java应用程序中创建的所有对象,而不管是哪个线程创建的对象。这包括原语类型的对象版本(例如。
Byte
,
Integer
,
Long
等等)。
增加堆大小
默认情况下,JVM使用的最大内存小于物理内存的1/4. 我们可以通过执行以下java代码来检查最大内存:
long maxBytes = Runtime.getRuntime().maxMemory(); System.out.println("Max memory: " + maxBytes/1024/1024 + " MB");
通过设置初始堆大小和最大堆大小,可以配置java程序的内存使用情况,如下所示:
java
-Xms
<initial heap size>
-Xmx
<maximum heap size>
例如:
java -Xms500m -Xmx6g myprogram
将初始堆大小设置为500 MB,最大堆大小设置为6 GB。
增加堆栈大小
在Windows上,默认的线程堆栈大小是从二进制文件中读取的(java.exe). 从Java SE 6开始,这个值在32位虚拟机中为320k,在64位虚拟机中为1024k。在x86 Solaris/Linux上,在32位虚拟机中为320k,在64位虚拟机中为1024k。
我们可以使用 –Xss参数增加堆栈大小。
例如:
java -Xss4m myprogram
将堆栈大小设置为4 MB。