摘要: GC调优(Tuning Garbage Collection)和其他性能调优是同样的原理。初学者可能会被 200 多个 GC参数弄得一头雾水, 然后随便调整几个来试试结果,又或者修改几行代码来测试。其实只要参照下面的步骤,就能保证你的调优方向正确: 第一步, 我们需要做的事情就是: 制定明确的GC性 阅读全文
posted @ 2019-04-03 17:59 chen_hao 阅读(873) 评论(0) 推荐(1) 编辑
摘要: JVM 在程序执行的过程中, 提供了GC行为的原生数据。那么, 我们就可以利用这些原生数据来生成各种报告。原生数据(raw data) 包括: 各个内存池的当前使用情况, 各个内存池的总容量, 每次GC暂停的持续时间, GC暂停在各个阶段的持续时间。 可以通过这些数据算出各种指标, 例如: 程序的内 阅读全文
posted @ 2019-04-03 17:58 chen_hao 阅读(1171) 评论(0) 推荐(1) 编辑
摘要: 学习了GC算法的相关概念之后, 我们将介绍在JVM中这些算法的具体实现。首先要记住的是, 大多数JVM都需要使用两种不同的GC算法 —— 一种用来清理年轻代, 另一种用来清理老年代。 我们可以选择JVM内置的各种算法。如果不通过参数明确指定垃圾收集算法, 则会使用宿主平台的默认实现。本章会详细介绍各 阅读全文
posted @ 2019-04-03 14:55 chen_hao 阅读(1391) 评论(0) 推荐(2) 编辑
摘要: 本章简要介绍GC的基本原理和相关技术, 下一章节再详细讲解GC算法的具体实现。各种垃圾收集器的实现细节虽然并不相同,但总体而言,垃圾收集器都专注于两件事情: 查找所有存活对象 抛弃其他的部分,即死对象,不再使用的对象。 第一步, 记录(census)所有的存活对象, 在垃圾收集中有一个叫做 标记(M 阅读全文
posted @ 2019-04-03 14:50 chen_hao 阅读(1018) 评论(0) 推荐(2) 编辑
摘要: 关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。 静态代理 1、静态代理 静态代理:由程序员创建或特定工具自动生成源代码,也就是在编译时就已经将接口,被代理类,代理类等确定下来。在程序运行之前,代理类的. 阅读全文
posted @ 2019-04-03 10:44 chen_hao 阅读(2054) 评论(0) 推荐(4) 编辑