2018年1月19日

Dynamic Code Evolution for Java dcevm 原理

摘要: 在hostswap dcevm中我们对Dynamic Code Evolution VM有了一个简单的了解,这篇文章将介绍Dynamic Code Evolution VM的实现原理。 有两个概念需要区别下: Dynamic Code Evolution (下文简称DCE):泛指java在运行时修改 阅读全文

posted @ 2018-01-19 14:47 cxhfuujust 阅读(398) 评论(0) 推荐(0) 编辑

classLoader卸载与jvm热部署

摘要: 以下的相关介绍都是在未使用dcevm的情况 classLoader的卸载机制 jvm中没有提供class及classloader的unload方法.那热部署及osgi中是通过什么机制来实现的呢?实现思路主要是通过更换classLoader进行重新加载.之前的classloader及加载的class类 阅读全文

posted @ 2018-01-19 14:46 cxhfuujust 阅读(214) 评论(0) 推荐(0) 编辑

hostswap dcevm

摘要: 什么是dcevm dcevm(DynamicCode Evolution Virtual Machine)是java hostspot的补丁(严格上来说是修改),允许(并非无限制)在运行环境下修改加载的类文件.当前虚拟机只允许修改方法体(method bodies),decvm,可以增加 删除类属性 阅读全文

posted @ 2018-01-19 14:46 cxhfuujust 阅读(569) 评论(0) 推荐(0) 编辑

使用btrace需要注意的几个问题

摘要: 1. @ProbeClassName String clazz 此处String不能写为java.lang.String 2. location=@Location(Kind.RETURN) public static void traceExecute(AnyType[] args,@ProbeC 阅读全文

posted @ 2018-01-19 14:45 cxhfuujust 阅读(132) 评论(0) 推荐(0) 编辑

JVM系列五:JVM监测&工具[整理中]

摘要: 前几篇篇文章介绍了介绍了JVM的参数设置并给出了一些生产环境的JVM参数配置参考方案。正如之前文章中提到的JVM参数的设置需要根据应用的特性来进行设置,每个参数的设置都需要对JVM进行长时间的监测,并不断进行调整才能找到最佳设置方案。本文将介绍如果通过工具及Java api来监测JVM的运行状态,并 阅读全文

posted @ 2018-01-19 14:44 cxhfuujust 阅读(206) 评论(0) 推荐(0) 编辑

JVM系列四:生产环境参数实例及分析【生产环境实例增加中】

摘要: java application项目(非web项目) 改进前: -Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadS 阅读全文

posted @ 2018-01-19 14:43 cxhfuujust 阅读(167) 评论(0) 推荐(0) 编辑

HotSpot VM GC 的种类

摘要: collector种类 GC在 HotSpot VM 5.0里有四种: incremental (sometimes called train) low pause collector已被废弃,不在介绍. 单线程收集器使用单线程去完成所有的gc工作,没有线程间的通信,这种方式会相对高效 并行收集器使 阅读全文

posted @ 2018-01-19 14:42 cxhfuujust 阅读(226) 评论(0) 推荐(0) 编辑

JVM系列二:GC策略&内存申请、对象衰老

摘要: JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域 阅读全文

posted @ 2018-01-19 14:40 cxhfuujust 阅读(142) 评论(0) 推荐(0) 编辑

JVM系列一:JVM内存组成及分配

摘要: java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主 阅读全文

posted @ 2018-01-19 14:38 cxhfuujust 阅读(212) 评论(0) 推荐(0) 编辑

JVM系列三:JVM参数设置、分析

摘要: 不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序 阅读全文

posted @ 2018-01-19 14:37 cxhfuujust 阅读(363) 评论(0) 推荐(0) 编辑

导航