JVM
文章平均质量分 86
李不烦
这个作者很懒,什么都没留下…
展开
-
GC Roots
在Java语言中,GC Roots包括以几类元素:虚拟机栈中引用的对象I➢比如:各个线程被调用的方法中使用到的参数、局部变量等。本地方法栈内JNI (通常说的本地方法)引用的对象方法区中类静态属性引用的对象➢比如: Java类的引用类型静态变量方法区中常量引用的对象➢比如:字符串常量池(String Table)里的引用所有被同步锁synchroni zed持有的对象Java虚拟机内部的引用。➢基本数据类型对应的Class对象,一些常驻的异常对象(如:Nul1Poin原创 2021-06-20 19:39:35 · 1448 阅读 · 1 评论 -
JVM第十一章_直接内存
直接内存概述直接内存不是虚拟机运行时数据区的一 部分,也不是《Java虚拟机规范》中定义的内存区域。 直接内存是在Java堆外的、直接向系统申请的内存区间。 直接内存来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存 通常,访问直接内存的速度会优于Java堆。即读写性能高。 ➢因此出于性能考虑,读写频繁的场合可能会考虑使用直接内存。 ➢Java的NIO库允许Java程序使用直接内存,用于数据缓冲区下面举个例子:/**...原创 2021-05-21 17:34:44 · 261 阅读 · 1 评论 -
JVM第十章_对象的实例化内存布局与访问定位
大厂面试题美团:对象在JVM中是怎么存储的?对象头信息里面有哪些东西?蚂蚁金服:二面:java对象头里有什么1、对象的实例化创建对象的步骤解释:1、判断对象对应的类是否加载、链接、初始化虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化。(即判断类元信息是否存在)。如果没有,那么在双亲委派模式下,使用当前类加载器以Clas...原创 2021-05-20 23:46:44 · 153 阅读 · 0 评论 -
JVM第九章_方法区
1、栈、堆、方法区的交互关系方法区也是除堆空间之外非常重要的结构从内存结构上来讲,这就是一个运行时数据区中的完整结构我们要了解平常这些反复是怎么分配到栈、堆、方法区的,他们三者是如何配合的从线程共享与否的角度来看由于堆和元空间是线程共享的,他们通信更方便,但是要考虑到线程安全的问题,尤其是在这个堆空间。元空间除了你动态加载的这个时候,一般情况下是比较稳定的,所以它的gc不会像堆空间那样频繁。至于右边他们要报错就是StackOverFlow,因为他们都是这个栈的结构。程序计数器它不会爆异常,也不原创 2021-05-20 07:12:22 · 321 阅读 · 0 评论 -
JVM监控及诊断工具-GUI篇-Jvisual Vm
基本概述Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具。它集成了多个JDK命令行工具,使用 Visual VM 可用于显示虚拟机进程及进程的配置和环境信息( jps , jinfo ) , 监视应用程序的CPU、GC、堆、方法区及线程的信息( jstat 、 jstack )等,甚至代替JConsole。在JDK 6 Update 7以后,Visual VM便作为JDK的一部分发布(VisualVM在JDK/bin目录下), 即:它完全免费。此外,Visual VM也原创 2021-05-05 23:01:19 · 333 阅读 · 0 评论 -
JVM监控及诊断工具-GUI篇-jconsole
概述使用上一章命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但它们存在下列局限:1. 无法获取方法级别的分析数据,如方法间的调用关系、各方法的调用次数和调用时间等(这对定位应用性能瓶颈至关重要)。2. 要求用户登录到目标Java应用所在的宿主机上,使用起来不是很方便。3. 分析数据通过终端输出,结果展示不够直观。为此,JDK提供了一些内存泄漏的分析工具,如 jconsole , jvisualvm 等,用于辅助开发人员定位问题,但是这些工具很多时候并不足以满足快速定位的...原创 2021-05-05 15:34:51 · 238 阅读 · 0 评论 -
JVM性能监控与调优(二)诊断工具-命令行 jps jstat jinfo jmap jhat jstack
目录概述命令行工具javac,javajps:查看正在运行的 Java 进程基本用法options 参数-q:仅仅显示本地虚拟机唯一 id。不显示名称。-l:输入应用程序主类的全类名或如果执行的是 jar 包,则输出 jar 完整路径。-m:输出虚拟机进程启动时传递给主类 main()的参数-v:列出虚拟机进程启动时的 JVM 参数。比如:-Xms20m -Xmx50mhostid 参数jstat:查看 JVM 统计信息基本语法option:...原创 2021-05-05 13:56:01 · 550 阅读 · 0 评论 -
JVM性能监控与调优(一)JVM调优概述
目录1. 大厂面试题2. 背景说明1. 生产环境中的问题2. 为什么要调优?3. 不同阶段的考虑3. 调优概述1-监控的依据2-调优的大方向4. 性能优化的步骤1. 性能监控 (发现问题)2. 性能分析(排查问题)3. 性能调优(解决问题)5. 性能评价/测试指标1. 停顿时间(或响应时间)2、吞吐量3、并发数4、内存占用5、相互间的关系1. 大厂面试题如何进行JVM调优?有哪些方法?如何理解内存泄漏问题?有哪些情况会导.原创 2021-05-04 16:37:16 · 222 阅读 · 0 评论