zoukankan      html  css  js  c++  java
  • Java分代的思考

    我们都知道,java的gc是基于java的分代前提,不管是CMS还是G1,都是基于分代思想:老年代和新生代

    思考一:为什么可以分代?

    1、java中对象的生命周期是不一样的,在gc中对应年龄的概念。

    短命的对象:如方法临时变量等。

    长命的对象:如缓存对象、连接池等。

    2、长命对象和短命对象之间的引用关系比较少(很重要)。

    思考二:分代的优点是什么?

    从垃圾回收的角度看,可以针对不同的分代采用不同的回收算法,提升垃圾回收的效率,降低系统stw的时间。

    思考三:分代没有缺点吗?

    假设我们有一个场景的java系统,是不符合思考一的java分代的前提的,那分代的垃圾回收算法反而会影响系统的性能。(期待能遇到一个这种系统。。。。)

    思考四:分代只是为了垃圾回收?

    就像第一点提到的,分代服务java对象,而java对象存在分配和回收两个过程,所以我们需要把对象分配和垃圾回收结合起来考虑分代,能同时提升对象分配和垃圾回收的效率才是分代想达到的目标

  • 相关阅读:
    Bootstrap的下拉菜单float问题
    style标签进行实时编辑及修改css(转)
    立即调用的函数表达式IIFE
    标签球Js插件
    如何正确使用Google搜索
    练习一:四则运算
    ARM伪指令
    vim 命令总结
    dialog BLE SDK 学习(1)
    ARM指令集
  • 原文地址:https://www.cnblogs.com/mengxw/p/8626299.html
Copyright © 2011-2022 走看看