
性能调优Jvm
文章平均质量分 92
Mr小林
软件工程师的成才之路。
展开
-
JVM 面试必问的 CMS,你懂了吗?
前言虽然 CMS 已经是很古老的垃圾回收器了,大家现在动不动就G1、ZGC啥的,但是据我所了解,还是有很多公司的生产环境主要使用的 CMS,包括我自己呆过的几家大厂也是。因此在 JVM 面试中,CMS 也是问的最多的,包括我自己现在面试别人时,问到 JVM 这一块,我也喜欢从CMS开始,逐渐深入。不多废话,今天我们就来盘他。正文1、什么是卡表(card table)?试想一下,在进行 YGC 时,如何判断是否存在老年代到新生代的引用?一个简单的办法是扫描整个老年代,但是这个代转载 2021-12-09 10:19:33 · 302 阅读 · 0 评论 -
一次完整的JVM堆外内存泄漏故障排查记录
|前言记录一次线上JVM堆外内存泄漏问题的排查过程与思路,其中夹带一些「JVM内存分配的原理分析」以及「常用的JVM问题排查手段和工具分享」,希望对大家有所帮助。在整个排查过程中,我也走了不少弯路,但是在文章中我仍然会把完整的思路和想法写出来,当做一次经验教训,给后人参考,文章最后也总结了下内存泄漏问题快速排查的几个原则。「本文的主要内容:」 故障描述和排查过程 故障原因和解决方案分析 JVM堆内内存和堆外内存分配原理 常用的进程内存泄漏排查指令和工具介绍和.转载 2021-09-06 10:20:40 · 311 阅读 · 0 评论 -
JVM记录一次偏向锁撤销导致系统停顿的问题
1.现象某次上线公司内部系统时候,发现系统反应很慢,停顿时间过长。2.问题排查遇到这种情况,推测是频繁GC导致,首先是查看日志(配置参数-XX:+PrintGCApplicationStoppedTime),结果如下:Total time for which application threads were stopped: 0.0050077 seconds, Stopping threads took: 0.0009924Total time for which app..转载 2020-07-31 13:46:50 · 4069 阅读 · 0 评论 -
【Jvm】手把手教你定位常见Java性能问题
概述性能优化一向是后端服务优化的重点,但是线上性能故障问题不是经常出现,或者受限于业务产品,根本就没办法出现性能问题,包括笔者自己遇到的性能问题也不多,所以为了提前储备知识,当出现问题的时候不会手忙脚乱,我们本篇文章来模拟下常见的几个Java性能故障,来学习怎么去分析和定位。预备知识既然是定位问题,肯定是需要借助工具,我们先了解下需要哪些工具可以帮忙定位问题。top命令top命...转载 2020-04-28 10:00:19 · 604 阅读 · 0 评论 -
JVM stop the world
一、遇到的问题Total time for which application threads were stop 超级长时间,这行日志代表什么,以及为什么时间会这么长 ?二、日志的含义Total time for which application threads were stopp 2.81 seconds,Stopping threads took :2.6 seco...转载 2020-04-24 09:50:18 · 2572 阅读 · 1 评论 -
JVM深入理解
JVM自动内存管理机制JVM垃圾收集器与内存分配策略JVM虚拟机类加载机制JVM字节码执行引擎JVM类文件结构JVM锁优化---转载 2018-10-17 16:14:43 · 493 阅读 · 0 评论 -
JVM 内存设置大小(Xms Xmx PermSize MaxPermSize 区别)
Eclipse崩溃,错误提示:MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains. It is strongly recommendedthat you exit and restart MyEclipse with new virtual machi...转载 2018-09-16 20:07:30 · 409 阅读 · 0 评论 -
JVM类生命周期概述:加载时机与加载过程
摘要: 我们知道,一个.java文件在编译后会形成相应的一个或多个Class文件,这些Class文件中描述了类的各种信息,并且它们最终都需要被加载到虚拟机中才能被运行和使用。事实上,虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的过程就是虚拟机的类加载机制。本文概述了JVM加载类的时机和生命周期,并结合典型案例重点介...转载 2018-04-03 16:38:43 · 167 阅读 · 0 评论 -
JVM中常用的垃圾回收机制算法
部分转自:《深入理解java虚拟机》一书。判断对象是否存活1、引用计数算法给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1。当引用失效时,计数器值就减1。任何时刻计数器为0的对象就是不可能再被使用的。但是主流的java虚拟机没有采用引用计数算法,其中最主要的原因就是它很难解决对象之间互相循环引用的问题。例子:对象A和B互相引用,但除此之外,这两个对象再无任何引用,但是他们因为互相引...转载 2018-04-03 14:48:56 · 158 阅读 · 0 评论 -
JVM性能优化:垃圾收集
JVM性能优化(三):垃圾收集原文地址,译文地址,译者:GreensterJava平台的垃圾收集机制显著提高了开发者的效率,但是一个实现糟糕的垃圾收集器可能过多地消耗应用程序的资源。在Java虚拟机性能优化系列的第三部分,Eva Andreasson向Java初学者介绍了Java平台的内存模型和垃圾收集机制。她解释了为什么碎片化(而不是垃圾收集)是Java应用程序性能的主要问题转载 2017-11-25 15:20:27 · 209 阅读 · 1 评论 -
JVM性能调优(一)
作者 Eva Andreasson 译者:赵峰 校对:方腾飞 原文链接Java应用程序是运行在JVM上的,但是你对JVM技术了解吗?这篇文章(这个系列的第一部分)讲述了经典Java虚拟机是怎么样工作的,例如:Java一次编写的利弊,跨平台引擎,垃圾回收基础知识,经典的GC算法和编译优化。之后的文章会讲JVM性能优化,包括最新的JVM设计——支持当今高并发Java应用的性能和扩展。转载 2017-11-25 15:06:04 · 204 阅读 · 0 评论