JVM运行时数据区域分类

程序计数器:当前线程所执行的字节码的行号指示器
Java虚拟机栈:描述的是Java方法执行的内存模型,相当于业务逻辑。每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出入口等
本地方法栈:为虚拟机用的Native方法服务
Java堆:储存对象实例,相当于数据存储
方法区:存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据
运行时常量池:用于存放编译期生成的各种字面量和符号引用
直接内存:不是虚拟机运行时数据区一部分,也不是java虚拟机规范中定义的内存区域,但是这部分内存也被频繁的使用,而且可能导致OutOfMemoryError异常

JVM调试与分析

  1. 参数-XX:+HeapDumpOnOutOfMemoryError,可以让虚拟机在出现内存溢出时Dump出当前的内存转储快照以便事后进行分析;
  2. 使用-Xss参数减少栈内存容量,结果:抛出StackOverflowError异常,异常出现时输出的栈的深度相应缩小;如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常
    ,如果虚拟机在扩展时无法申请到足够的内存空间,则抛出OutOfMemoryError异常 ;
  3. -XX:PermSize和-XX:MaxPermSize限制方法区大小,从而间接限制其中常量池的容量;
  4. DirectMemory容量可通过-XX:MaxDirectMemorySize指定,如果不指定,则默认与Java堆最大值-Xmx一样;

性能优化-简谈JVM相关推荐

  1. 10年+SQL性能优化专家谈SQL等价改写核心思想

    墨墨导读:2020数据技术嘉年华于11月21日落下帷幕,大会历时两天,来自全国各地的数据领域学术精英.领袖人物.技术专家.从业者和技术爱好者相聚北京,见证了个人的快速成长.技术的迭代进步.行业的蓬勃发 ...

  2. delphi 算术溢出解决方法_性能优化系列:JVM 内存划分总结与内存溢出异常详解分析...

    前言 那些使用过 C 或者 C++ 的读者一定会发现这两门语言的内存管理机制与 Java 的不同.在使用 C 或者 C++ 编程时,程序员需要手动的去管理和维护内存,就是说需要手动的清除那些不需要的对 ...

  3. javascript中数据访问性能优化简析

    我们一般写代码都会考虑代码的可读性.可扩展性及重要的是浏览器的解析.减少代码数量提高代码性能加载速度,是我们每个coder所追求的.在javascript中,我们有时必须考虑的是如何确定数据的存储位置 ...

  4. mysql性能优化简书_MySQL性能优化

    1.合理的创建及使用索引,索引不宜过多,过多的索引会占用更多的空间,而且每次增.删.改操作都会重建索引. 2.合理的冗余字段(尽量建一些大表,考虑数据库的三范式和业务设计的取舍). 3.select语 ...

  5. 推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题(图解版)

    欢迎一起学习 <提升能力,涨薪可待篇> <面试知识,工作可待篇 > <实战演练,拒绝996篇 > 欢迎关注我csnd博客 也欢迎关注公 众 号[Ccww笔记],原创 ...

  6. 赠书:《Java性能优化实践》,众多业内大佬推荐阅读

    没有捷径可走的 Java 性能优化 多年来,用 Google 搜索 Java performance tuning,出现的三篇最热门文章之一是于 1997 年到 1998 年左右发表的文章,这篇文章在 ...

  7. 新书上市 | 《Java性能优化实践》,众多业内大佬推荐阅读

    没有捷径可走的 Java 性能优化 多年来,用 Google 搜索 Java performance tuning,出现的三篇最热门文章之一是于 1997 年到 1998 年左右发表的文章,这篇文章在 ...

  8. 阿里Java架构师精通资料:性能优化+亿级并发架构汇总+架构选型

    分布式并发架构 微服务.Docker容器的基本原理.架构设计,以及应用场景. 缓存:Redis.Memcached.CDN.本地缓存 搜索引擎的选型:Lucene.Solr等选型与比较 应用服务器雪崩 ...

  9. 一次ES性能优化,我发现了搞大数据的真相……

    作者介绍 李猛,数据领域专家,Elastic Stack国内顶尖实战专家,国内首批Elastic官方认证工程师21人之一.2012年入手Elasticsearch,对Elastic Stack技术栈开 ...

  10. 从限流削峰到性能优化,谈1号店抽奖系统架构实践

    1.前言 抽奖是一个典型的高并发场景应用,平时流量不多,但遇到大促活动,流量就会暴增,今年的周年庆期间的日均UV就超过百万.在过去的一年里,负责过这个项目的多次重构工作,期间各种踩坑无数,就以此文当做 ...

最新文章

  1. HTML5实现屏幕手势解锁(转载)
  2. 第二章 Vue快速入门-- 28 自定义按键修饰符
  3. 遍历boost::fibers::unbuffered_channel< unsigned int >的测试程序
  4. 44_pytorch数据增强,Resize,Flip,Rotate,Random Move Crop,Scale,Crop Part,Noise
  5. 操作系统P,V(wait,signal原语)操作讲解,以及两个例题(答案仅供参考)
  6. kali修改root密码
  7. Eclipse:引用一个项目作为库(图文教程)
  8. 老外用的文件服务器,云存储服务市场乱战 老外到底都用啥
  9. C#.NET常见问题(FAQ)-如何使用DataGridView跟Excel数据交互
  10. 河津市新世纪计算机学校元旦晚会,运城最好的职中排名
  11. linux 防火墙 qt udp,使用Qt实现简单的udp/ip通信
  12. django03配置相关
  13. Windows 环境搭建Redis集群之无脑教程
  14. 如何驱动直流电机H桥驱动笔记
  15. 如何高效地阅读技术类书籍与博客
  16. html caption 靠左,HTML caption align 属性 | Paoo教程
  17. GOM传奇文件目录功能说明
  18. 中国行政区边界线下载(省,市,区县、乡镇边界线)
  19. JAVA实现 剑指offer第二版 2
  20. erp系统有哪些功能模块?

热门文章

  1. linux内核C -- 第04课:Linux内核第一宏——container_of
  2. Android下基于UVC的UsbCam的开发
  3. ISO 15765-2
  4. 使用Arcpy进行数据批处理-批量裁剪
  5. 几个常用的shell脚本
  6. 编写可靠shell脚本的八个建议
  7. 愤怒的小鸟python代码_Python 愤怒的小鸟代码实现:物理引擎pymunk使用
  8. android 取消多个闹钟,如何在android中取消闹钟
  9. error installing service: 拒绝访问。 (5)_CentOS7x86_64安装Tomcat8.5手册
  10. 模型与高性能服务器结合,Epoll模型的高性能服务器丢失数据问题解决