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

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

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

有两种方法:
1、打开eclipse配置文件eclipse.ini,更改把-Xmx(其数值代表jvm可以使用的最大内存数)
2.  运行java程序时,选择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)" ;
  }
}

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

您可能感兴趣的文章:

  • JVM角度调试优化MyEclipse
  • 浅析打开eclipse出现Incompatible JVM的解决方法
(0)

相关推荐

  • 浅析打开eclipse出现Incompatible JVM的解决方法

    安装了oracle10g的客户端后,eclipse打不开了.所以检查了一下,发现是以下原因.运行eclipse出现以下错误:Incompatible JVMVersion 1.3.1_01 of the JVM is not suitable for this product.Version:1.4.1 or greater is required.或Version 1.4.1_02 of the JVM is not suitable for this product.Version:1.5

  • JVM角度调试优化MyEclipse

    在将工作电脑的操作系统更换为win7之后,我的MyEclipse的启动速度和运行速率一直很不理想.特别是在同时修改调试多个页面模板的时候,来回切换两个文件总是会卡个十来秒.试过关掉各种插件和验证也无济于事.于是在大致的研究完JVM后,决定从JVM的角度来试着解决这个问题. 启动优化: 首先来看下我的myeclipse.ini里面的默认启动参数: -Xmx512m :设置堆内存最大值为512M -XX:MaxPermSize=256m :设置持久代最大值为256m -XX:ReservedCode

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

    本文介绍了eclipse修改jvm参数调优方法(2种),分享给大家,具体如下: 一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡,其实只要对eclipse的相关参数进行一些配置,就会有很大的改善. 有两种方法: 1.打开eclipse配置文件eclipse.ini,更改把-Xmx(其数值代表jvm可以使用的最大内存数) 2.  运行java程序时,选择run->run configuration->arguments,输入-Xms100M -Xmx8

  • SpringBoot JVM参数调优方式

    目录 SpringBoot JVM参数调优 各种参数 SpringBoot jar包启动设置JVM参数 配置初始化堆和最大堆的大小 SpringBoot JVM参数调优 各种参数 参数名称 含义 默认值 说明 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制. -Xmx 最大堆大小 物理内存的1/4(<1GB) 默认(MaxHeapFreeRatio参数可以调整)空余堆内存大

  • Java多线程异步调用性能调优方法详解

    目录 概述 同步调用和异步调用 Future类图 Future的不足 代码 代码地址 Test PaymentService CheckService OrderService 总结 概述 大型电商公司的支付聚合服务都有这类的场景: 调用校验服务校验待生成的订单是否合法 订单服务生成订单(校验服务和订单服务没有依赖关系) 调用1和2,支付服务实现支付核心的功能 结合步骤1至3完成支付服务的聚合调用 ​假如步骤1的耗时5秒,步骤2的耗时3秒,步骤3的耗时2秒,如果你是架构师,要求:​ 1.请实现微

  • Windows 下修改Tomcat jvm参数的方法

    目录 一.设置Windows服务自动启动方式修改 1.注册表修改 2.修改TomcatW.exe 二.运行“startup.bat”启动修改 一.设置Windows服务自动启动方式修改 修改注册表或者修改运行tomcatW.exe出来的“Java”选项都行 1.注册表修改 运行:regedit 找到: (64位操作系统)HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat7\Pa

  • jvm调优的几种场景(小结)

    目录 一.cpu占用过高 (1)用top命令查看cpu占用情况 (2)用top -Hp命令查看线程的情况 (3)把线程号转换为16进制 (4)用jstack工具查看线程栈情况 二.死锁 三.内存泄漏 四.总结 假定你已经了解了运行时的数据区域和常用的垃圾回收算法,也了解了Hotspot支持的垃圾回收器. 一.cpu占用过高 cpu占用过高要分情况讨论,是不是业务上在搞活动,突然有大批的流量进来,而且活动结束后cpu占用率就下降了,如果是这种情况其实可以不用太关心,因为请求越多,需要处理的线程数越

  • Nginx访问控制与参数调优的方法

    Nginx全局变量 Nginx中有很多的全局变量,可以通过$变量名来使用.下面列举一些常用的全局变量: 变量 说明 $args 请求中的参数,如www.123.com/1.php?a=1&b=2的$args就是a=1&b=2 $content_length HTTP请求信息里的"Content-Length" $conten_type HTTP请求信息里的"Content-Type" $document_root nginx虚拟主机配置文件中的roo

  • JVM性能调优实现原理及配置

    1.JVM内存模型 总结:可以发现最明显的一个变化是元空间从虚拟机转移到了本地内存.默认情况下,元数据空间大小仅受限于本地内存, 这意味着以后不会因为永久代大小不够而抛出OOM异常了. jdk1.8以前,HotSpot VM将class和类的jar包数据存储在PermGen里, PermGen大小是固定的,而且项目之间无法公用公有的class,所以很容易碰到OOM异常.改成MateSpace后, 各个项目会共享同样的class空间.比如多个项目都引用了apache-common包, 在MateS

  • JVM性能调优实战:让你的IntelliJ Idea纵享丝滑

    本文已被Github仓库收录 https://github.com/silently9527/JavaCore 前言 在前面整理了一篇关于JVM故障诊断和处理工具,考虑到大部分的Java程序员都使用的是IntelliJ Idea,本篇就使用工具来实战演练对IntelliJ Idea运行速度调优 调优前的运行状态 原始配置内容 要查询idea原始配置文件的路径可以在VisualVM中的概述中查看 原始配置内容: -XX:ReservedCodeCacheSize=240m -XX:+UseComp

  • Java JVM虚拟机调优详解

    目录 jmap查看内存信息 jstack jinfo查看jvm系统参数 Jstat查看堆内存使用和类加载的数量信息 内存泄漏 jmap查看内存信息 jmap histo /pid > ./log.txt :查看某一进程实例个数,占用内存的字节数,以及所属的类 jmap -heap /pid :查看堆信息 jmap ‐dump:format=b,file=app.hprof /pid 通过jvisualvm命令启动jvm可视化管理界面可导入dump文件进行分析:查看类的实例 jstack 分析死锁

  • Spring实现动态修改时间参数并手动开启关停操作

    spring实现定时任务的方式有三种,分别是java自带的timer类.spring task和quartz三种. 本文只介绍spring自带的task和第三方quartz.spirng task可以将它比作一个轻量级的Quartz,使用起来非常简单,除spring相关的包外不需要额外的包,而且支持注解和配置文件两种.接着直接演示spring task注解实现方式. 首先,创建任务类,如下: @Component public class MyScheduler { int i =0; publ

随机推荐