JVM调优系列
文章平均质量分 88
rootlh;
普通开发者如果习惯于在架构师封装好的东西之上,只专注于做业务开发,那久而久之,在技术理解和成长上就会变得迟钝甚至麻木。
展开
-
JVM调优---常用JVM配置参数
一、Trace跟踪参数(跟踪GC、类、变量的内存变化情况)打开GC跟踪日志(每次执行GC的信息都能打印,获得执行时间,空间大小):-verbose:gc 或 -XX:+printGC 或 -XX:+printGCDetails类加载监控:(监控类加载的顺序)-XX:+TraceClassLoading二、堆的分频参数-Xm原创 2017-08-14 09:24:10 · 5244 阅读 · 0 评论 -
GC算法和种类
GC垃圾回收的对象:堆空间和永久区GC算法分类:引用计数法-- 老算法(Java不使用)-- 用于python、COM-- 增加一个引用,引用数加一,引用消失,引用数减一,当引用变为0时GC回收-- 缺点:引用增加减少伴随着加减法,影响性能。循环引用的问题难处理。循环引用的例子:原创 2017-08-14 11:25:21 · 220 阅读 · 0 评论 -
GC参数
串行回收器:-- 古老、稳定、效率高、单线程回收-- 可能产生较长停顿-- 开启使用:-XX:+UseSerialGC-- 使用场所:新生代(复制算法)、老年代(标记-压缩)并行回收器:-- 多线程(不一定快,单核CPU不会变快,切换线程上下文需要时间)-- 标记-压缩算法-- 开启使用: 新生代并行收集器原创 2017-08-14 15:59:51 · 274 阅读 · 0 评论 -
类加载器ClassLoader
class文件装载流程:--加载(使用ClassLoader) 取得类文件的二进制流 将二进制流转为方法区数据结构 在JVM堆中生成对应的Class对象-- 链接 验证(文件格式、是否有父类?继承final类?) 准备 (在方法区中分配内存,初始值,stat原创 2017-08-14 17:49:27 · 206 阅读 · 0 评论 -
JVM调优总结(含tomcat调优配置)
JVM参数 - 标准参数(所有jvm都支持) -X 非标准参数(不同jvm不同)- XX 不稳定参数(下一版本可能取消)JVM中的垃圾收集器 Serial Collector单线程串行执行GC(效率高,但吞吐量小) Parallel Collector多线程并行GC(默认,效率高,吞吐量原创 2017-09-04 23:00:13 · 593 阅读 · 0 评论 -
Jvm内部锁机制总结
一、线程安全和对象头Mark每个对象都有一个对象头标记Mark(32位)Mark描述对象hash、锁信息、垃圾回收标记、年龄二、锁的分类偏向锁:(只在单线程有效)--------- 偏心锁,锁会偏向让当前已经持有锁的线程持有--------- Mark中:标记为偏向,写入线程ID--------- 只要没有竞争,获得偏向锁的线程将原创 2017-08-28 11:09:33 · 1235 阅读 · 0 评论 -
关于JVM对象分配的小实验
首先来看看JVM虚拟机对于对象的空间分配有哪几种方式:栈上分配(JVM默认开启栈上优化)线程私有、小对象(方法结束栈清空不需要垃圾收集)无逃逸(方法结束,对象消失。如果仍然有其它对象持有它的引用,说明逃逸了(作用域逃出了方法))1-XX:+UseTLAB2-XX:+DoEscapeAnalysis //使用逃逸分析---可以在栈上分配对象(不使用原创 2017-09-04 20:42:38 · 349 阅读 · 0 评论 -
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解一、企业级应用开发现状二、jps(Java Virtual Machine Process Status Tool)三、jstack四、jmap(Memory Map)和jhat(Java Heap Analysis Tool)五、jstat(JVM统计监测工具)六、hprof(Heap/CPU Prof...转载 2019-06-22 15:57:01 · 725 阅读 · 0 评论