常见参数配置

  • 基于JDK1.6

-XX:+PrintGC 每次触发GC的时候打印相关日志

-XX:+UseSerialGC 串行回收模式

-XX:+PrintGCDetails 打印更详细的GC日志

-Xms 堆的初始值

-Xmx 堆的最大可用值

-Xmn 新生代堆的最大可用值

-XX:SurvivorRatio 用来设置新生代中eden空间和from/to空间的比例

-XX:NewRatio 配置新生代与老年代的占比

总结:在实际工作中,可以直接将初始的堆大小与最大堆大小相等,减少程序运行时垃圾回收的次数,提高效率。

如:-Xms512m -Xmx512m

通过代码查看堆内存分配

public class MemoryTest {

  public static void main(String[] args) {

    System.out.println("最大内存:" + Runtime.getRuntime().maxMemory()/1024/1024 + "M");
System.out.println("可用内存:" + Runtime.getRuntime().freeMemory()/1024/1024 + "M");
System.out.println("已使用内存:" + Runtime.getRuntime().totalMemory()/1024/1024 + "M"); System.out.println("============================================================="); byte[] b = new byte[200*1024*1024];
System.out.println("分配了200M空间给数组...."); System.out.println("最大内存:" + Runtime.getRuntime().maxMemory()/1024/1024 + "M");
System.out.println("可用内存:" + Runtime.getRuntime().freeMemory()/1024/1024 + "M");
System.out.println("已使用内存:" + Runtime.getRuntime().totalMemory()/1024/1024 + "M"); } }

打印信息:

如果改为2000,

byte[] b = new byte[2000*1024*1024];

超过了1792M,所以会报内存溢出:

JVM系列(1)- JVM常见参数及堆内存分配的更多相关文章

  1. jvm 虚拟机参数_堆内存分配

    1.参数 -XX:+PrintGC 只要遇到 GC 就会打印日志 -XX:+UseSerialGC 配置串行回收器 -XX:+PrintGCDetails 查看详细信息,包括各个区的情况 -XX:+P ...

  2. JVM系列三:JVM参数设置

    JVM系列三:JVM参数设置.分析   不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM.GC的参数,可以极大的减少由于GC工作,而导致的程序运 ...

  3. JVM系列五:JVM监测&工具

    JVM系列五:JVM监测&工具[整理中]  http://www.cnblogs.com/redcreen/archive/2011/05/09/2040977.html 前几篇篇文章介绍了介 ...

  4. jvm系列(七):jvm调优-工具篇

    16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化.工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗 ...

  5. jvm系列(八):jvm知识点总览-高级Java工程师面试必备

    在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功.对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后 ...

  6. jvm系列(四):jvm知识点总结

    原文链接:http://www.cnblogs.com/ityouknow/p/6482464.html jvm 总体梳理 jvm体系总体分四大块: 类的加载机制 jvm内存结构 GC算法 垃圾回收 ...

  7. jvm系列(1):JVM问答

    一:JVM基础知识 1)Java 是如何实现跨平台的? 注意:跨平台的是 Java 程序,而不是 JVM.JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 ...

  8. jvm系列(八):jvm知识点总览

    在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功.对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后 ...

  9. 【JVM系列1】深入分析Java虚拟机堆和栈及OutOfMemory异常产生原因

    前言 JVM系列文章如无特殊说明,一些特性均是基于Hot Spot虚拟机和JDK1.8版本讲述. 下面这张图我想对于每个学习Java的人来说再熟悉不过了,这就是整个JDK的关系图: 从上图我们可以看到 ...

随机推荐

  1. pod update更新error: RPC failed; curl 18 transfer closed with outstanding read data remaining

    1. pod update 的时候出现下边的错误 error: RPC failed; curl 18 transfer closed with outstanding read data remai ...

  2. Spring 核心技术(2)

    接上篇:Spring 核心技术(1) version 5.1.8.RELEASE 1.3 Bean概述 Spring IoC 容器管理一个或多个bean,他们都是根据提供的配置元数据(例如 XML 中 ...

  3. wcf服务编程(一)

    步骤一:定义契约 [ServiceContract] //定义服务契约 需要引用System.ServiceModel public interface ICalculator { [Operatio ...

  4. ansible安装应用软件

    1.创建相应的目录: mkdir -p /ansible/roles/{nginx,mysql,tomcat,db,zabbix}/{defaults,files,handlers,meta,task ...

  5. eclipse+MyEclipse+WebLogic开发简单的EJB

    转载自http://blog.sina.com.cn/s/blog_678530f60100hxaf.html 说是转载,其实这是我个人在几年前新浪博客上发表的文章. 帮导师搞了一周的EJB,总算初步 ...

  6. Specifying the Code to Run on a Thread

    This lesson shows you how to implement a Runnable class, which runs the code in its Runnable.run() m ...

  7. nu.xom:Element

    Element: 机翻 Element(Element element) :通过深复制,创建一个element Element(String name) :创建一个没有命名空间的element Ele ...

  8. 启动Chrome时自动开启开发者模式

    右键点击Google Chrome浏览器图标→属性,在目标里面加上参数--auto-open-devtools-for-tabs即可

  9. 摄像头驱动的使能配置、V4L2编程接口的设计应用

    摄像头采集子系统 一.摄像头驱动的使能配置 摄像头软件驱动构架 摄像头采集系统由上图所示,硬件(摄像头) -> 驱动(Linux内核配置中,选择支持V4L2的驱动选项) -> V4L2接口 ...

  10. 艺赛旗RPA-处理无表头表格

    今天写一个demo,要求是对表格数据用价格为key进行排序 样本数据有两种格式: 一.第一行是一个大单元格 处理步骤: 在不变参数的情况下读取表格数据: 结果如下: 可以看见表头: Unnamed: ...