
java
yaoyujie157
这个作者很懒,什么都没留下…
展开
-
java内存dump文件导出
生成dump文件的命令:jmap -dump:format=b,file=20170307.dump 16048file后面的是自定义的文件名,最后的数字是进程的pid转载 2021-01-26 09:32:20 · 1170 阅读 · 0 评论 -
JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)
1.背景2.为什么废弃永久代(PermGen)3.深入理解元空间(Metaspace)4.总结======正文分割线=一、背景1.1 永久代(PermGen)在哪里?根据,hotspot jvm结构如下(虚拟机栈和本地方法栈合一起了):上图引自网络,但有个问题:方法区和heap堆都是线程共享的内存区域。关于方法区和永久代:在HotSpot JVM中,这次讨论的永久代,就是上图...转载 2020-04-20 13:53:44 · 171 阅读 · 0 评论 -
JDK8为何要废弃永久代
1、现实使用中易出问题。由于永久代内存经常不够用或者发生内存泄露,爆出异常 java.lang.OutOfMemoryError: PermGen 。字符串存在永久代中,容易出现性能问题和内存溢出。类及方法的信息等比较难确定其大小,因此对于永久代的大小指定比较困难,太小容易出现永久代溢出,太大则容易导致老年代溢出。2、永久代会位GC带来不必要的复杂度,而且回收效率偏低。3、Oracle可...转载 2020-04-20 13:35:32 · 603 阅读 · 0 评论 -
JVM之堆内存(年经代,老年代)
一、为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这样就会腾...转载 2020-04-16 13:22:57 · 415 阅读 · 0 评论 -
jvm垃圾回收器参数说明
下面是完整的 GC 开关参数说明。选项/默认值&说明-XX:+UseG1GC使用 G1 (Garbage First) 垃圾收集器-XX:MaxGCPauseMillis=n设置最大GC停顿时间(GC pause time)指标(target). 这是一个软性指标(soft goal), JVM 会尽量去达成这个目标.原创 2020-04-16 10:52:59 · 358 阅读 · 0 评论 -
jvm堆参数说明
-Xms 初始堆大小。如:-Xms256m-Xmx 最大堆大小。如:-Xmx512m-Xmn 新生代大小。通常为 Xmx 的 1/3 或 1/4。新生代 = Eden + 2 个 Survivor 空间。实际可用空间为 = Eden + 1 个 Survivor,即 90%-Xss JDK1.5+ 每个线程堆栈大小为 1M,一般来说如果栈不是很深的话, 1M 是绝对够用了的。-XX:New...原创 2020-04-16 11:03:27 · 267 阅读 · 0 评论