jvm
大王我亲自来巡山
这个作者很懒,什么都没留下…
展开
-
k8s配置jvm参数
如果公司的项目最终是部署在k8s上的,那么,我们在本地idea上配置的jvm参数其实是无法在服务器上生效的。又或者我们需要直接在k8s服务器上进行jvm调优,此时,就需要操作在k8s上的jvm参数。原创 2022-12-21 09:42:06 · 3032 阅读 · 1 评论 -
jvm垃圾回收器
XX:+CMSInitiatingOccupancyFraction = percent , 因为最后一步的垃圾清理过程是并行执行的,因此,在进行gc的同时,有可能会产生浮动垃圾,也就是在gc的过程中,其他用户线程产生的垃圾,因此percent用来指定老年代垃圾到达一定的比例后,就会触发gc。-XX:+UseConcMarkSweepGC是在老年代的垃圾回收器,采用的是标记清除算法,效率高,但是会产生内存碎片,碎片太多,老年代不能正常工作时,就会退化成SerialOld,采用标记整理算法,清除内存碎片。原创 2022-12-18 10:23:59 · 364 阅读 · 0 评论 -
JVM垃圾回收算法
这个过程其实相当复杂,因为剩下的内存其实都是正在使用的内存,要移动这些数据,不是简单复制一下就OK了,你还要把所以引用到这个内存的引用全部更改一下。需要两块一样大小的内存空间,其中只有一块是真正存储数据的,当垃圾回收的时候,现对第一块标记清除,然后将剩余活着的的直接复制到另一块内存空间上,然后讲第一块内存直接全部清除。4 minor gc后,伊甸园区和from区存活的对象会复制到to区,然后寿命加1,然后将to区重新定义为from区,from区定义为to区,此时一次minor gc完成。原创 2022-12-14 18:39:49 · 324 阅读 · 0 评论 -
jstat -gc pid参数
然后使用jstat -gc pid查询gc情况。原创 2022-12-08 17:25:52 · 310 阅读 · 0 评论 -
JVM内存结构
相当于是,某一个方法又调用了另外一个方法,层层调用,但是同一时间只能有一个活动栈。其实就是一些c和c++的类库,Java并不能很方便的调用操作系统的一些功能,需要借助c/c++类库来间接调用。元空间:很难内存溢出,因为使用的其实是操作系统内存,也就是硬件内存,所以除非硬件内存不够。1 程序计数器线程是私有的,也就是说,每一个线程都会拥有一个独自的pc。每个栈由多个战针组成,对应着程序中每个方法调用的时候,所占用的内存。1.8是元空间,移出堆内存到本地内存,也就是操作系统内存中。2 不会存在内存溢出。原创 2022-12-02 10:00:05 · 262 阅读 · 0 评论