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

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

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

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    解决execjs 调用js 问题
    处理 get请求套字典问题
    js2py js逆向
    前端页面自适应
    newspaper抓新闻
    easygui
    pycharm 安装插件
    scrapy_代理使用
    SQLAlchemy 介绍,建表,及表的操作 (增 删 改 查)
    数据分析之pandas模块下
  • 原文地址:https://www.cnblogs.com/mengxw/p/8626299.html
Copyright © 2011-2022 走看看