欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

IDEA设置JVM可分配内存大小和其他参数的教程

程序员文章站 2024-01-22 22:13:10
有时我们会遇到 java.lang.outofmemoryerror 的问题,可能会需要设置jvm运行参数作用-dproperty=value该参数通常用于设置系统级全局变量值,如配置文件路径,保证该...

有时我们会遇到 java.lang.outofmemoryerror 的问题,可能会需要设置jvm运行参数

作用

-dproperty=value

该参数通常用于设置系统级全局变量值,如配置文件路径,保证该属性在程序中任何地方都可访问。当然,也可以通过在程序中使用system.setproperty进行设置。

注意:

1、如果-dproperty=value的value中包含空格,可以将value使用引号引起来。例如:-dmyname="hello world"。

2、如果配置了-dproperty=value参数,又在程序中使用了system.setproperty对同一个变量进行设置,那么以程序中的设置为准。

针对某个application设置

1、run-->edit configurations

IDEA设置JVM可分配内存大小和其他参数的教程

2、选中要添加jvm参数的application,然后在configuration里面的vm options中输入想要添加的系统参数

IDEA设置JVM可分配内存大小和其他参数的教程

针对所有的application设置

1、找到idea安装目录中的bin目录

2、找到idea.exe.vmoptions文件

3、打开该文件编辑并保存。

IDEA设置JVM可分配内存大小和其他参数的教程

优先级关系

代码中的配置>application中的配置>全局配置

补充:intellij idea 修改内存大小,运行大项目再也不卡了

运行大点的项目特别卡?没关系,我们改一下idea的最大占用内存就可以了。

怎样查看idea内存使用情况呢?

在 settings -> appearance & behavior 设置窗口中,勾选 show memory indicator 选项,然后主界面右下角会显示 heap 总大小以及使用状况了。

IDEA设置JVM可分配内存大小和其他参数的教程

接下来找到idea*.exe.vmoptions,不同的操作系统,文件名可能会不一样,而且idea同时提供32位和64位的程序打开方式,我经常用的是windows下64位的打开方式,所以,就在idea安装目录(我安装在默认c:\program files\jetbrains\intellij idea 2017.2.3\bin)下找到idea64.exe.vmoptions进行修改

IDEA设置JVM可分配内存大小和其他参数的教程

将以下三项改大大大大大大

IDEA设置JVM可分配内存大小和其他参数的教程

然后重启idea,迫不及待去看右下角的内存指示器,!!!怎么还是默认的数值?

IDEA设置JVM可分配内存大小和其他参数的教程

查找一番资料之后,发现vmoptions文件简直是狡兔三窟啊,在idea安装目录下的bin文件夹里,有一个idea.bat文件,在这里面配置了vmoptions文件的位置

IDEA设置JVM可分配内存大小和其他参数的教程

找到真正的位置(我的c:\users\pharma\.intellijidea2017.2\config,这个实际路径对应上图红框中带参数的路径),再次进行修改

IDEA设置JVM可分配内存大小和其他参数的教程

IDEA设置JVM可分配内存大小和其他参数的教程

重启idea,查看右下角内存指示器,当当当当,成功!

IDEA设置JVM可分配内存大小和其他参数的教程

等等!似乎哪里不太对劲!!为什么我设置了最大内存2048,指示器却显示2014?作为强迫症的资深代表,实在不能忍啊!

算一算差了多少,一七得七,二七四十八,三八妇女节,五一劳动节,六一儿童节... ...

算了,还是严谨一点,运行calc打开计算器算一算吧

IDEA设置JVM可分配内存大小和其他参数的教程

配置文件里再加34m

IDEA设置JVM可分配内存大小和其他参数的教程

重启idea,再次查看右下角内存指示器,变成了完美的2048!

IDEA设置JVM可分配内存大小和其他参数的教程

ps:为什么初始内存也要设置1024m那么大?有文章这样说:此值可以设置与-xmx相同,以避免每次垃圾回收完成后jvm重新分配内存。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。