Java
文章平均质量分 80
iPennyWong
这个作者很懒,什么都没留下…
展开
-
JVM GC调优
目标满足应用的响应时间和吞吐量需求,尽量减少GC对应用的影响原则 大部分时候都不需要调优GC,只需配置-Xms,-Xmx即可,JVM会自动进行调整 先满足响应时间需求,再满足吞吐量需求 FullGC对应用的影响更大,要尽量减少FullGC执行的时间和频率,减少转移到Old的对象数量 监控GC状态 查看一下GC的总体执行情况 jstat -gcutil pid 参数 说明 YGC Min原创 2016-05-24 18:01:48 · 369 阅读 · 0 评论 -
JVM 问题排查
CPU使用率高找出使用率高的进程的pidtop找出使用率高的线程tpidtop -p pid -H查看使用率高的线程当前在干什么jstack -l pid > stack.log// 将线程的tpid转为16进制,到stack.log中查找 grep tpid stack.log -a3GC问题// -t:打印时间戳,1s每隔1秒打印一次 jstat -gcutil -t pid 1s也可以通过查看原创 2016-05-26 17:07:14 · 1498 阅读 · 0 评论 -
ThreadLocal
ThreadLocal简述一种线程绑定机制,每个线程都拥有对象的独立副本,不会与其他线程冲突,从而避免了并发与同步问题。结构每个线程都有一个ThreadLocalMap,其中Key为ThreadLocal对象,Value为用户对象的值ThreadLocal只是作为Key标识,并不存放任何数据,真正存放数据的是每个线程中的ThreadLocalMap。所以ThreadLocal一般应该定义成静态变量。原创 2016-05-20 11:43:50 · 261 阅读 · 0 评论 -
JVM体系结构
ClassLoader将Class加载到内存ClassLoader结构 BootstrapClassLoader:加载Java核心库(JAVA_HOME/jre/lib),唯一一个使用本地代码编写的加载器 ExtensionClassLoader:加载扩展库(JAVA_HOME/jre/lib/ext和系统参数java.ext.dirs指定的目录),它的父加载器是null(因为BootstrapCl原创 2016-05-23 14:15:26 · 304 阅读 · 0 评论 -
JVM-GC基础
基本的垃圾回收算法 引用计数Reference Counting 标记-清除Mark-Sweep 复制Copying 标记-整理Mark-Compact 比较 JVM分代结构 分代依据 JVM GC过程 JVM GC算法 串行 并行 并发 G1 比较 JVM GC Root基本的垃圾回收算法引用计数(Reference Counting)增加一个引用,引用计数加1,去掉一个引用,引用计数减1,然后回原创 2016-05-23 14:37:48 · 313 阅读 · 0 评论