随笔分类 -  jvm

摘要:G1 同样存在着年代的概念,但其内部是类似棋盘状的一个个 region 组成。 region 的大小是一致的,数值是在 1M 到 32M 字节之间的一个 2 的幂值数,JVM 会尽量划分 2048 个左右、同等大小的 region。当然这个数字既可以手动调整,G1 也会根据堆大小自动进行调整。在 G 阅读全文
posted @ 2020-05-14 22:21 北城cheng 阅读(245) 评论(0) 推荐(0)
摘要:强引用(StrongReference) 最常用到的引用类型,StrongRerence这个类并不存在,而是在JVM底层实现。默认的对象都是强引用类型,继承自Rerence、SoftReference、WeakReference、PhantomReference的引用类型非强引用。 最简单的强引用示 阅读全文
posted @ 2020-04-27 22:16 北城cheng 阅读(336) 评论(0) 推荐(0)
摘要:JVM把描述类的数据从class文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是JVM的类加载机制。 在加载阶段虚拟机需要完成以下三件事: 1)通过一个类的全限定名称来获取此类的二进制字节流,并加载到内存中(需要使用类加载器) 2)将这个字节流所代表 阅读全文
posted @ 2020-04-26 22:15 北城cheng 阅读(1406) 评论(0) 推荐(0)
摘要:基本的调优思路可以总结为:(确定目标,借助日志工具等找出问题,定位问题后分析问题的原因,进行调优,验证调优效果) 1.理解应用需求和问题,确定调优目标。评估用户可接受的响应时间和业务量,将目标简化为,希望 GC 暂停尽量控制在 200ms 以内,并且保证一定标准的吞吐量。 2.掌握 JVM 和 GC 阅读全文
posted @ 2020-04-25 20:54 北城cheng 阅读(438) 评论(0) 推荐(0)
摘要:1.Serial(Serial + Serial Old):最古老的垃圾收集器,“Serial”体现在其收集工作是单线程的, 在进行垃圾收集过程中,会进入臭名昭著的“Stop-The-World”状态,一直是 Client 模式下 JVM 的默认选项。针对新生代采用复制算法(-XX:+UseSeri 阅读全文
posted @ 2020-04-24 22:16 北城cheng 阅读(211) 评论(0) 推荐(0)
摘要:第一,程序计数器(PC,Program Counter Register)。在 JVM 规范中,每个线程都有它自己的程序计数器,并且任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的 Java 方法的 JVM 指令地址;或者,如果是在执行本地方法,则是未指 阅读全文
posted @ 2020-04-17 22:02 北城cheng 阅读(135) 评论(0) 推荐(0)
摘要:1.window-->show view >先找terminal,如果此时的页面中并没有看到,选择other,Terminal就有了。打开后啥都没有是因为需要连接,点击控制台右上面图标,设置编码类型即可。 2.maven项目,想要执行一下mvn clean类似这种命令的。先点击项目,右键,看到sho 阅读全文
posted @ 2020-04-10 09:17 北城cheng 阅读(1432) 评论(0) 推荐(0)
摘要:导致Full GC一般由于以下几种情况: 1)老年代空间不足 调优时尽量让对象在新生代(细分为Eden和幸存区)GC时被回收、让对象在新生代多存活一段时间(增大新生代内存或者调高晋升老年代的门槛)和不要创建过大的对象及数组避免直接在老年代创建对象 2)新生代设置过小 一是新生代GC次数非常频繁,增大 阅读全文
posted @ 2020-04-06 22:03 北城cheng 阅读(1121) 评论(0) 推荐(0)