![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
jvm学习笔记
chenfuguocode
这个作者很懒,什么都没留下…
展开
-
代码优化之逃逸分析
new出来的对象在方法内使用完结束,没有返回时未发送逃逸引用了外部实例 作为返回值返回时发生逃逸开启标量替换: -XX:+EliminateAllocations使用逃逸分析时编译器可以对代码做如下优化1、栈上分配将堆分配转换为栈分配,如果一个对象在子程序中被分配,要指向该对象的指针永远不会逃逸,对象可能是栈分配的候选,而不是堆分配。2、同步省略如果一个对象被发现只能从一个线程被访问到,那么对于找个对象的操作可以不考虑同步。3、分离对象或标量替换有的对象可能不需要作为一个连续的内存结原创 2020-10-02 18:55:47 · 354 阅读 · 0 评论 -
hotspot方法区的变化
jdk1.6及之前有永久代,静态变量存在永久代上jdk1.7有永久代,但已经逐步“去永久代”,字符串常量池,静态变量移除保存在堆中jdk8及以后无永久代,类型信息,字段,方法,常量保存在本地内存的元空间,但是字符串常量池,静态变量任然保存在堆上jdk7及以前:永久代 占jvm内存大小jdk8及以后:元空间 占物理机内存大小jdk7及以前-XX:MaxPermSize 设置永久代最大大小 默认32位64M 64位82M-XX:PermSize 设置永...原创 2020-09-30 17:16:36 · 217 阅读 · 0 评论