• -XX:PermSize/-XX:MaxPermSize,永久代内存;

1. 虚拟机参数:-ea,支持 assert 断言关键字

eclipse 默认是不开启此参数的,也就是虽然编译器支持 assert 关键字,但并不起作用,需要为虚拟机的默认参数中增加此配置选项:

  • 【Window】⇒ 【Preferences】⇒ 【Java】⇒ 【Installed JREs】
  • 右侧对点中待配置参数的JREs,对其进行编辑:

如下图所示:

2. Java 堆溢出

Java 堆用于存储对象实例(new),因此只要不断地创建对象,且保证 GC Roots 到对象之间有可达路径以避免垃圾回收机制清除这些对象,那么对象数量到达最大堆(-Xmx)的容量限制后,就会产生内存溢出异常:

  • 限制 Java 堆的大小为 20M,且不可扩展:-Xms20m -Xmx20m

    • 将最小值 -Xms 参数与最大值 -Xmx 参数设置为一样便可避免 Java 堆的自动拓展;
  • -XX:+HeapDumpOnOutOfMemoryError,可让虚拟机在出现内存溢出异常时,Dump 出当前的内存堆转储快照以便进行定位分析:
/**
* VM args:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
*/
public class HeapOOM {
static class OOMObject {
}
public static void main(String[] args) {
List<OOMObject> list = new ArrayList<OOMObject>();
int counter = 0;
while (true) {
list.add(new OOMObject());
System.out.println("counter = " + (++counter));
}
}
}

Java VM(虚拟机) 参数的更多相关文章

  1. hadoop java VM 参数设置 默认native栈大小设置

    问题总结: 程序栈太小,64位机器的栈大小默认比32位的大,将程序从64放到32中执行则报错,需要修改初始堆栈大小 (.so库中提供两个函数接口,一个里面使用的是尺寸较大的图像,另一个处理的图像很小, ...

  2. jboss启动时java VM参数设置

    jboss服务器中jvm参数的设置: 在$JBOSS_HOME/bin下的run.sh里面存在这么一个设置: # Force IPv4 on Linux systems since IPv6 does ...

  3. 如何设置java虚拟机参数

    这两天在看java虚拟机,从书上看到可以自己设置java虚拟机的参数,可以方便开发人员进行系统调优和故障排查 Ecplise设置java虚拟机参数: window-->preferences-- ...

  4. Java&.Net虚拟机精简(GreenJVM&GreenDotNet发布) .

    精简JRE体积的小工具:http://blog.csdn.net/cping1982/archive/2008/09/02/2865198.aspx 项目地址:http://code.google.c ...

  5. Eclipse设置虚拟机参数 (转 构建内存溢出)

    Java -verbose:gc 中参数-verbose:gc 表示输出虚拟机中GC的详细情况. 首先在Eclipse的Debug页签中设置虚拟机参数: 步骤: 1.选中已经写好的项目 2.Run-& ...

  6. matlab中增加Java VM 的堆空间(解决xml_io_tools出现的OutOfMemory问题)

    今天用MATLAB写程序,调用了xml_io_tools(很赞的一个xml读写工具包)中的函数,但是由于我要书写的文件比较大,5m左右,运行时不知道xml_io_tools中的哪一块超出了java中的 ...

  7. 认识 java JVM虚拟机选项 Xms Xmx PermSize MaxPermSize 区别

    点击window---->preferences---->配置的tomcat---->JDK,在Optional Java VM arguments:中输入 -Xmx512M -Xm ...

  8. Java JVM虚拟机选项Xms/Xmx/PermSize/MaxPermSize(转)

    通过JVM的这些选项:Xms/Xmx/PermSize/MaxPermSize可以牵扯出很多问题,比如性能调优等. 说明:以下转载没经过实践. 经验实例(参考): 设置每个线程的堆栈大小.JDK5.0 ...

  9. java System.getProperty()参数大全

    java.version Java Runtime Environment versionjava.vendor Java Runtime Environment vendorjava.vendor. ...

随机推荐

  1. ajax跨域资源共享

    一.同域发送数据 略 二.跨域发送数据 1.存在的问题 1.什么是同源策略 同源策略阻止从一个域名上加载的脚本获取或操作另一个域名上的文档属性.也就是说,受到请求的 URL 的域名必须与当前 Web ...

  2. MySQL数据库(4)_MySQL数据库外键约束、表查询

    一.外键约束 创建外键 --- 每一个班主任会对应多个学生 , 而每个学生只能对应一个班主任 ----主表 CREATE TABLE ClassCharger( id TINYINT PRIMARY ...

  3. c# 如何设置透明画刷

    使用solidBrush新建画刷,定义画刷的颜色为透明色 Brush b = new SolidBrush(Color.FromArgb(50, Color.Green)); 这里的50是透明度的设置 ...

  4. 20160418 while,switch,do..while的使用

    9 一.While循环 示例:求100以内所有数的和 Int i=1;//初始条件 Int sum=0; While(i<=100)//循环条件 { Sum+=i;//循环体 i++;//状态改 ...

  5. loadrunder之脚本篇——action分类

    Action分类 l . Vuser_init 2. Vuser_end 3.  Action 在lr中用户的初始化操作应该存放在Vuser_init中.用户的结束操作存放在Vuser_end中.因为 ...

  6. PHP无限分类封装

    <?php /** +------------------------------------------------ * 通用的树型类 +--------------------------- ...

  7. 【HackerRank】Insertion Sort Advanced Analysis(归并排序求数列逆序数对)

    Insertion Sort is a simple sorting technique which was covered in previous challenges. Sometimes, ar ...

  8. nand flash详解及驱动编写

    https://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html#nand_ ...

  9. Linux基础三---打包压缩&vim&系统的初始化和服务

    一,常用命令——tar&vim 1. tar [参数]  文件名  [路径] 参数: -c :建立一个压缩文件的参数指令(create 的意思):     -x :解开一个压缩文件的参数指令! ...

  10. Logger日志级别说明及设置方法、说明

    日志记录器(Logger)是日志处理的核心组件.log4j具有5种正常级别(Level).日志记录器(Logger)的可用级别Level (不包括自定义级别 Level), 以下内容就是摘自log4j ...