随笔分类 -  JVM

软/弱/虚引用
摘要:https://www.jianshu.com/p/825cca41d962 引用的本质是,可以把jvm内存当做一个大的池化技术,池化技术最重要的是逐出策略。那么,这三种引用对应的逐出策略是不一样的,具体可以看上面链接里的介绍。简单来说,强引用的逐出策略是,如果一个对象没有了强引用,就逐出。软引用是 阅读全文
posted @ 2019-07-15 15:39 冰花ぃ雪魄 阅读(163) 评论(0) 推荐(0) 编辑
GC调优
摘要:Gc调优的目标:1.降低停顿时间 2.提高吞吐量 3.避免full-gc 调优可以使用的手段:1.各个内存区的大小调整:堆,年轻代,老年代,方法区等等2.减少短暂对象的存活时间,提高长期对象的复用率(对象池,cache,永久区等等),减少不必要的垃圾的生产。3.调整对象的晋升:晋升阈值,surviv 阅读全文
posted @ 2019-02-03 15:08 冰花ぃ雪魄 阅读(662) 评论(0) 推荐(0) 编辑
GC算法基础
摘要:寻找垃圾对象的算法:1. 引用计数(无法处理循环引用) 2. 根寻法(被广泛引用在gc算法中) 清理垃圾的算法: 1. 标记复制 2. 标记清理 3. 标记整理 分代算法的好处: 1. 分代处理,可以减少一次处理的内存大小,减少停顿时间。 2. 不同的代有不同的特点,再加上有针对性的gc算法和代码优 阅读全文
posted @ 2019-01-31 15:05 冰花ぃ雪魄 阅读(200) 评论(0) 推荐(0) 编辑
gc的real时间比user时间长
摘要:https://stackoverflow.com/questions/556405/what-do-real-user-and-sys-mean-in-the-output-of-time1 https://blog.gceasy.io/2016/12/08/real-time-greater-t 阅读全文
posted @ 2019-01-25 11:11 冰花ぃ雪魄 阅读(241) 评论(0) 推荐(0) 编辑
Jit
摘要:Jit编译:just in time 编译. Java代码只有在执行一段时间以后才会进行jit编译。 Hotspot会编译优化那些热点代码,以求最大的性能收益。 Jit编译的好处: 1. 执行一段时间后,可以统计出哪些代码的调用频次高。 2. 执行一段时间后,编译器可以获得代码的一些性能信息,来加大 阅读全文
posted @ 2019-01-18 17:18 冰花ぃ雪魄 阅读(368) 评论(0) 推荐(0) 编辑
java性能分析工具
摘要:jcmd:向JVM发送诊断的命令,jvm未必会全部响应,有些需要在jvm开启相应功能才能响应。个人平时用的不是很多。 SampleA: 添加 jcmd pid VM.native_memory detail 查看jvm内存分配情况(堆内内存、Code区域或者使用unsafe.allocateMemo 阅读全文
posted @ 2019-01-18 16:15 冰花ぃ雪魄 阅读(316) 评论(0) 推荐(0) 编辑
Greys--JVM异常诊断工具
摘要:https://github.com/oldmanpushcart/greys-anatomy/wiki/greys-pdf 一、简介 我们平时在线上或者开发中会遇到各种性能、功能等问题,在运行过程中需要查看方法入参、返回值,或者方法执行的堆栈时间,或者jar冲突时类加载来自那个jar包等问题。我们 阅读全文
posted @ 2018-06-05 14:59 冰花ぃ雪魄 阅读(4673) 评论(0) 推荐(0) 编辑
Java的Finalizer引发的内存溢出
摘要:转自 http://ju.outofmemory.cn/entry/74671 本文介绍的是Java里一个内建的概念,Finalizer。你可能对它对数家珍,但也可能从未听闻过,这得看你有没有花时间完整地看过一遍java.lang.Object类了。在java.lang.Object里面就有一个fi 阅读全文
posted @ 2018-05-11 14:35 冰花ぃ雪魄 阅读(5771) 评论(0) 推荐(1) 编辑
深入解析String#intern
摘要:转自:https://tech.meituan.com/in_depth_understanding_string_intern.html 深入解析String#intern john_yang ·2014-03-06 17:10 引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型Stri 阅读全文
posted @ 2017-09-21 19:13 冰花ぃ雪魄 阅读(189) 评论(0) 推荐(0) 编辑
Understanding String Table Size in HotSpot
摘要:In JDK-6962930[2], it requested that string table size be configurable. The resolved date of that bug was on 04/25/2011 and it's available in JDK 7. I 阅读全文
posted @ 2017-09-21 19:11 冰花ぃ雪魄 阅读(265) 评论(0) 推荐(0) 编辑
Java性能优化之JVM GC(垃圾回收机制)
摘要:Java的性能优化,整理出一篇文章,供以后温故知新。 JVM GC(垃圾回收机制) 在学习Java GC 之前,我们需要记住一个单词:stop-the-world 。它会在任何一种GC算法中发生。stop-the-world 意味着JVM因为需要执行GC而停止了应用程序的执行。当stop-the-w 阅读全文
posted @ 2017-09-20 12:21 冰花ぃ雪魄 阅读(559) 评论(0) 推荐(0) 编辑
为什么新生代内存需要有两个Survivor区
摘要:目录(?)[-] 为什么要有Survivor区 为什么要设置两个Survivor区 目录(?)[-] 在我的上一篇博客中,介绍了JVM堆内存的结构以及在堆中进行的GC机制,链接是浅谈JAVA GC机制与性能优化 那么,在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区? 1 阅读全文
posted @ 2017-09-20 11:47 冰花ぃ雪魄 阅读(295) 评论(0) 推荐(0) 编辑
jmap命令详解
摘要:1、命令基本概述 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 使用方法 jmap -histo pid。如果使用SHELL ,可采用jmap -hist 阅读全文
posted @ 2017-09-20 10:57 冰花ぃ雪魄 阅读(605) 评论(0) 推荐(0) 编辑
JVM GC 机制与性能优化
摘要:目录(?)[+] 目录(?)[+] 1 背景介绍 与C/C++相比,JAVA并不要求我们去人为编写代码进行内存回收和垃圾清理。JAVA提供了垃圾回收器(garbage collector)来自动检测对象的作用域),可自动把不再被使用的存储空间释放掉,也就是说,GC机制可以有效地防止内存泄露以及内存溢 阅读全文
posted @ 2017-09-20 10:54 冰花ぃ雪魄 阅读(437) 评论(0) 推荐(0) 编辑
JVM1.6 GC详解
摘要:前言 JVM GC是JVM的内存回收算法,调整JVM GC(Garbage Collection),可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,所以我们要了解JVM内存组成,回收算法,对象分配机制。 JVM 堆内 阅读全文
posted @ 2017-09-19 21:05 冰花ぃ雪魄 阅读(258) 评论(0) 推荐(0) 编辑
jstat命令详解
摘要:转自: http://blog.csdn.net/zhaozheng7758/article/details/8623549 Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下 阅读全文
posted @ 2017-09-19 19:49 冰花ぃ雪魄 阅读(592) 评论(0) 推荐(0) 编辑

 
点击右上角即可分享
微信分享提示