随笔分类 -  JVM

摘要:年轻代大小选择: 响应时间优先的应用: 尽可能设大,直到接近系统的最低响应时间限制。在此种情况下,年轻代收集发生的频率也是最小的。同时,减少到达年老代的对象。 吞吐量优先的应用: 尽可能的设置大,可能到达 Gbit 的程度。因为对响应时间没有要求,垃圾收集可以并行进行,一般适合8CPUc上的应用 。 阅读全文
posted @ 2018-10-31 14:47 一剑侵心 阅读(105) 评论(0) 推荐(0) 编辑
摘要:1. 标记 - 清除算法 先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。它是最基础的收集算法。其他收集算法都是根据其思路,改进其不足之处。 缺点:1) 标记和清除两个阶段的效率都不高;2)清除后会产一大量不连续的内存碎片 2. 复制算法 将可用内存划分为大小相等的两块,每次只使用 阅读全文
posted @ 2017-08-30 09:01 一剑侵心 阅读(197) 评论(0) 推荐(0) 编辑
摘要:Java虚拟机在操作系统层面会先尽一切可能在虚拟机层面上解决竞争关系,尽可能避免真实的竞争发生。同时,在竞争不激烈的场合,也会试图消除不必要的竞争。实现这些手段的方法包括:偏向锁、轻量级锁、自旋锁、锁消除、锁膨胀等 1. 偏向锁 偏向锁是JDK1.6提出的一种锁优化方式。其核心思想是:如果程序没有竞 阅读全文
posted @ 2017-07-12 21:23 一剑侵心 阅读(528) 评论(0) 推荐(0) 编辑
摘要:收集器可以大致分为:单线程收集器, 并发收集器和并行收集器。 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行,而垃圾收集程序运行于另一个CP 阅读全文
posted @ 2017-06-20 20:40 一剑侵心 阅读(204) 评论(0) 推荐(0) 编辑
摘要:运行时数据区示意图 1. 程序计数器 占用一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。主要用来记录线程执行到哪条语句了,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完成。 如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的 阅读全文
posted @ 2017-06-17 12:18 一剑侵心 阅读(178) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示