
jvm
发呆程序员
好习惯要坚持下去
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java线上故障排查全套路(转载)
原文地址:Java线上故障排查全套路 示例:记一次线上OOM排查和性能优化 非常实用!转载 2020-01-10 17:08:17 · 585 阅读 · 0 评论 -
你了解JVM中的 JIT 即时编译及优化技术吗?
原文地址:https://www.jianshu.com/p/fbced5b34eff 字节码万岁(编译型语言、解释型语言、字节码语言的关系):https://mp.weixin.qq.com/s/2-ztm5A0W8mDtCrzH_cX-g JVM Client 模式和 Server模式的区别 查看JVM模式 通过 java -version 可查看 JVM 所处的模式,并可以...转载 2019-08-29 16:28:11 · 365 阅读 · 0 评论 -
jvm系列六:JVM GC调优关键性能指标
原文地址:https://blog.youkuaiyun.com/xiaocszn/article/details/83108058 当对java应用的内存和GC调优时,我们应该基于关键性能指标来做决定,但是指标有很多,哪些我们应该着重考虑呢?这篇文章将尝试讨论这个问题。 哪些是我们应该考虑的指标? 1. 吞吐量 2. 延迟 3. CPU消耗 1. 吞吐量 吞吐量是指单位时间内能完成的生产任务的量,首先...转载 2019-03-02 10:49:02 · 1344 阅读 · 0 评论 -
jvm系列二:Java8内存模型-永久代(PermGen)和元空间(Metaspace)
原文地址:https://www.cnblogs.com/paddix/p/5309550.html 一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引...转载 2018-01-23 17:43:31 · 1259 阅读 · 0 评论 -
jvm系列三:垃圾回收
可达性分析算法 JVM内存组成结构 JVM内存由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示: 1)堆 所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制,如:-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和S...转载 2017-02-06 12:39:42 · 520 阅读 · 0 评论 -
jvm系列四:jvm内存调优
首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和JavaVisualVM(jvisualvm)。 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数,过多的GC和Full GC是会...转载 2017-02-06 12:40:36 · 4391 阅读 · 0 评论 -
jvm系列五:监测命令(jvisualvm jps jstat jmap jhat jstack jinfo)及dump堆内存快照分析
运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,但是在生产环境出现问题的时候,一方面工具的使用会有所限制,另一方面喜欢装X的我们,总喜欢在出现问题的时候在终端输入一些命令来解决。所有的工具几乎都是依赖于jdk的接口和底层的这些命令,研究...转载 2016-12-08 13:10:45 · 15360 阅读 · 1 评论 -
jvm系列一:Java代码编译、执行及类加载
Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码编译机制 类加载机制 类执行机制 Java源码编译机制 Java 源码编译由以下三个过程组成: 分析和输入到符号表 注解处理 语义分析和生成class文件 流程图如下所...转载 2017-02-06 12:32:57 · 5086 阅读 · 1 评论