
JVM
ZhiYuanYe
.
展开
-
新书推荐 | 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)
Java自上世界90年代面世以来,以其优良的特性,逐渐占据了企业级开发的主流位置,并且日益强大的语言生态,更加巩固了它在编程语言排行榜上的地位。Java的快速发展,得益于支撑它运行的底层平台:JVM,这个由C++编写的虚拟机,有着一个抽象化的虚拟机内部的抽象体系结构,让我们的Java程序得以“一次编写,到处运行”,并且开发人员并不需要关心资源问题,JVM为我们独挑大梁。但是,正如周志明老师在《...原创 2019-12-12 10:35:42 · 5069 阅读 · 0 评论 -
一次线上问题排查:java.lang.OutOfmemoryError: PermGen Space
背景用基于Spring Boot(环境是java7)的系统做了一个报表导出的功能,第一次部署的时候用的默认JVM参数,但是测试人员在点击了一次导出之后,其他功能就疑似挂掉了,过了一会后才能正常使用;再点击导出,又出现这个问题,对这个问题的排查如下。jmap -heap pid查看堆内存使用情况Attaching to process ID 6082, please wait...Debugger原创 2017-10-25 16:49:28 · 6091 阅读 · 3 评论 -
JVM垃圾回收算法与参数配置
★引用计数法 这是个古老而经典的垃圾收集算法,其核心就是在对象被其他所引用时计数器+1,而当引用失效时-1,但是这种方式有非常严重的问题:无法处理循环引用的情况,还有就是每次进行加减操作比较浪费系统性能。★标记清除法 分为标记和清除两个阶段进行处理内存中的对象,当然这种方式也有非常大的弊端,就是空间碎片问题,垃圾回收后的空间不连续,不连续的内存空间工作效率低于连续的内存空间。★复制算法(java原创 2017-08-05 17:07:30 · 8740 阅读 · 0 评论 -
JVM参数初探
//———————堆参数———————-// (一)、 -XX:+PrintGC 使用这个参数,虚拟机启动后,只要遇到GC就会打印日志 -XX:+UseSerialGC 配置串行回收器 -XX:+PrintGCDetails 可以查看详细信息,包括各个区的情况 -Xms 设置最小堆 -Xmx 设置最大堆 -Xmx20m -Xms5m -XX:+PrintCommandLineFlags原创 2017-08-03 00:58:17 · 4208 阅读 · 1 评论 -
一个由-XX:SurvivorRatio失效引发的探索
最近死磕一个关注吞吐量的应用程序,初期参数如下:-Xms4096m -Xmx4096m -Xss256K -XX:PermSize=128m -XX:MaxPermSize=256m -Xmn3g -XX:SurvivorRatio=4 -XX:+UseParallelGC -XX:ParallelGCThreads=16 -XX:+UseParallelOldGC -XX:Ma原创 2017-12-26 20:36:43 · 7783 阅读 · 0 评论 -
GC调优——XX:TargetSurvivorRatio的使用
使用jmeter对服务进行压测,一个需要吞吐量的应用,2000个线程,JVM参数如下:-Xms4096m -Xmx4096m -Xss256K -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -Xmn3g -XX:+UseAdaptiveSizePolicy -XX:SurvivorRatio=10 -XX:TargetSu原创 2017-12-27 17:41:42 · 7264 阅读 · 0 评论