![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
最近都更新到本地了
科学严谨
展开
-
现网问题排查实战:Jstat,Jstack,Jmap
各种命令原创 2019-04-24 20:31:00 · 1037 阅读 · 0 评论 -
《深入理解Java虚拟机》第1,2章
前言之前对JVM的了解纯限于面经,或是牛客选择题后的解析。现在开始正式修炼,修炼!!第一部分:走进Java原来Java虚拟机上可以运行很多其他语言。Java平台的多语言混合编程成为主流。 JDK1.5加入了java.util.concurrent包 JDK1.7加入了forkjoin包,Fork/Join模式能解决不少并发问题。64位虚拟机的运行比32位的落后约15%。但企...原创 2018-08-12 10:47:44 · 149 阅读 · 0 评论 -
《深入理解Java虚拟机》第3章 GC与内存分配策略
GC的历史远远比Java久远。 哪些需要回收? 何时回收? 怎么回收? GC会成为系统达到更高并发量的瓶颈,所以需要对这些“自动化”的技术实施必要的调节。程序计数器以及两个栈,三个区域随线程而生,而灭。方法结束或线程结束,内存自然就回收了。Java堆和方法区不一样,一个接口的多个实现类需要的内存可能不一样,一个方法的多个分支需要的内存也可能不一样。内存的分配和回收都是运行期间,动态的。...原创 2018-08-18 11:54:44 · 173 阅读 · 0 评论 -
《深入理解Java虚拟机》 第4章 虚拟机性能监控与故障处理工具
本章主要内容JDK的命令行工具 JDK的可视化工具我们需要处理:运行日志、异常堆栈、GC日志、线程快照、堆转储快照 4.2.1 JPS:虚拟机进程状况工具4.2.2 JSTAT:虚拟机统计信息监控工具(定位VM性能问题的首选工具) jstat -gc 线程号 间隔 共查询次数4.2.3 JINFO:Java配置信息工具(实时查看和调整VM的各项参数)4.2.4 JMA...原创 2018-08-18 23:49:44 · 129 阅读 · 0 评论 -
《深入理解Java虚拟机》第7章 虚拟机类加载机制
7.2 类加载的时机类从被加载到VM内存中开始,到卸载出内存为止,它的生命周期包括了:加载,验证,准备,解析,初始化,使用,卸载,共7个阶段。其中验证,准备,解析统称为连接。其中解析的顺序不一定,某些情况可以在初始化阶段后开始,这是为了支持Java的运行时绑定。 何时加载VM自己把握,但对于初始化,严格规定4种情况:遇到new,getstatic,putstatic或invokes...原创 2018-08-26 17:57:00 · 141 阅读 · 0 评论 -
《深入理解Java虚拟机》第5章 调优案例分析与实战
5.2.1高性能硬件上的程序部署策略 监控服务器运行状况发现网站没有响应是由GC停顿导致的,虚拟机运行在Server模式,默认使用吞吐量优先收集器,回收12GB的堆,一次Full GC的停顿时间高达14秒。访问文档把其从磁盘提取到内存中,导致内存中出现很多由文档序列化产生的大对象。这些大对象很多进入了老年代,没有在Minor GC中被清理掉。因此内存很快被消耗殆尽。在高性能硬件上部署程序...原创 2018-08-23 19:27:16 · 345 阅读 · 0 评论 -
《深入理解Java虚拟机》第6章 类文件结构
简单来说,Java代码-Java编译器-字节码(.class)-虚拟机执行,大概是这样一个过程。 class文件是一组以8位字节为基础单位的二进制流。 class文件采用C 语言结构体的伪结构来存储 伪结构只有两种数据类型:无符号数和表。 无符号数可以描述数字、索引引用、数量值、或者按UTF-8编码构成字符串值。 表是由多个无符号数或其他表作为数据项构成的复合数据类型。 每个class...原创 2018-08-25 10:30:39 · 247 阅读 · 0 评论