当前位置: 首页 > 编程笔记 >

eclipse修改jvm参数调优方法(2种)

徐淳
2023-03-14
本文向大家介绍eclipse修改jvm参数调优方法(2种),包括了eclipse修改jvm参数调优方法(2种)的使用技巧和注意事项,需要的朋友参考一下

本文介绍了eclipse修改jvm参数调优方法(2种),分享给大家,具体如下:

一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡,其实只要对eclipse的相关参数进行一些配置,就会有很大的改善。

有两种方法:
1、打开eclipse配置文件eclipse.ini,更改把-Xmx(其数值代表jvm可以使用的最大内存数)
2.  运行javahtml" target="_blank">程序时,选择run->run configuration->arguments,输入-Xms100M -Xmx800M(-Xms代表jvm启动时分配的内存大小,-Xmx代表可最大分配多少内存)。

今天在eclipse 中测试把文档转换为图片的时候,报出了下面的错误:

java.lang.OutOfMemoryError: Java heap space

从上边的异常信息可以看到,JVM 需要使用的内存已经超过了我们分配给虚拟机可以使用的最大内存。所以问题就转化为如何设置eclipse 中jvm 的最大内存。

一、尝试修改Eclipse.ini 文件 (此方法不行)

找到eclipse 目录下的eclipse.ini 文件,修改下面的内容:

-Xms40m
-Xmx512m

修改后重启eclipse ,发现根本不起作用。经过后来查阅一些资料,原来这里设置的最小内存和最大内存是不是给JVM 使用的,这个内存值包含了eclipse 自身使用的内存。

二、修改jdk 使用内存(此方法可行)

找到eclispe 中window->preferences->Java->Installed JRE ,点击右侧的Edit 按钮,在编辑界面中的 “Default VM Arguments ”选项中,填入如下值即可。

-Xms64m -Xmx128m

三、修改Run Configurations (此方法可行)

代码上右键,依次点击“Run As ”-> “Run Configurations ”,在Arguments 参数中的“VM arguments:”中填入如下值即可。

-Xms64m -Xmx128m

主要通过以下的几个jvm参数来设置堆内存的:

-Xmx512m 最大总堆内存,一般设置为物理内存的1/4
-Xms512m 初始总堆内存,一般将它设置的和最大堆内存一样大,这样就不需要根据当前堆使用情况而调整堆的大小了
-Xmn192m 年轻带堆内存,sun官方推荐为整个堆的3/8
堆内存的组成 总堆内存 = 年轻带堆内存 + 年老带堆内存 + 持久带堆内存
年轻带堆内存 对象刚创建出来时放在这里
年老带堆内存 对象在被真正会回收之前会先放在这里
持久带堆内存 class文件,元数据等放在这里
-XX:PermSize=128m 持久带堆的初始大小
-XX:MaxPermSize=128m 持久带堆的最大大小,eclipse默认为256m。如果要编译jdk这种,一定要把这个设的很大,因为它的类太多了。

四、查询当前JVM 内存代码

下面是查询当前JVM 内存大小的代码,可以测试以上设置后JVM 的内存是否会变化。增加JVM 内存的配置项后,无需重新启动eclipse 。具体的代码如下:

public class TestMemory {
 
  /**
   * @param args
   */
  public static void main(String[] args) {
    System. out .println( " 内存信息 :" + toMemoryInfo());
  }
 
  /**
   * 获取当前 jvm 的内存信息
   *
   * @return
   */
  public static String toMemoryInfo() {
 
    Runtime currRuntime = Runtime.getRuntime ();
    int nFreeMemory = ( int ) (currRuntime.freeMemory() / 1024 / 1024);
    int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024);
    return nFreeMemory + "M/" + nTotalMemory +"M(free/total)" ;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 主要内容:1.JVM参数分类,2.堆参数设置,3.元空间参数,4.栈参数设置,5.收集器参数设置,6.GC策略参数配置,7.Dump异常快照,8.GC日志配置写在开头: X或者XX开头的都是非标准化参数 意思就是说标准化参数不会变,非标准化参数可能在每个JDK版本中有所变化 -XX:+PrintCommandLineFlags查看当前JVM设置过的相关参数 1.JVM参数分类 “-”、“-X”、“-XX” 标准参数(-):所有的JVM实现都必须实现这些参数的功能,而且向后兼容; -verbose

  • 本文向大家介绍mongodb 修改用户密码 2种方法,包括了mongodb 修改用户密码 2种方法的使用技巧和注意事项,需要的朋友参考一下 1,错误做法,直接更新表 2,正确做法,利用db.addUser 有人会问,这个不是添加用户的方法吗。不错这是添加用户的方法,但是如果用户名相同,密码不同的话,就会更新密码。 3,正确做法,利用db.changeUserPassword  

  • 问题内容: 而且我正在尝试更改方法注释,但是java.lang.reflect.Method不包含任何地图字段(例如“ annotations”)或方法(例如“ getDeclaredAnnotationMap”) 只有但是我可以用这个字节数组做什么? 那么,如何修改方法的注释呢? 编辑: 我创建了:http : //pastebin.com/T2rewcwU 但是,仅编辑此方法实例,如果取消注释

  • 本文向大家介绍常用的 JVM 调优的参数都有哪些?相关面试题,主要包含被问及常用的 JVM 调优的参数都有哪些?时的应答技巧和注意事项,需要的朋友参考一下 -Xms2g:初始化推大小为 2g; -Xmx2g:堆最大内存为 2g; -XX:NewRatio=4:设置年轻的和老年代的内存比例为 1:4; -XX:SurvivorRatio=8:设置新生代 Eden 和 Survivor 比例为 8:2

  • 问题内容: public class StackOverFlow { public static void main(String[] args) { ArrayList al = new ArrayList (); al.add(“A”); al.add(“B”); markAsNull(al); System.out.println(“ArrayList elements are “+al);

  • 本文向大家介绍MySQL修改tmpdir参数,包括了MySQL修改tmpdir参数的使用技巧和注意事项,需要的朋友参考一下 今天突然收到报警短信,说是/磁盘空间使用超过阀值。经查看,发现是有很多异常的SQL,执行不了,导致一直在处理,产生了临时占用了/tmp磁盘空间。 由于操作系统的/tmp空间有限,需要进行参数修改,将tmpdir的值路径进行修改。 只能通过配置文件进行修改了。 重启mysql