视频地址: https://www.bilibili.com/video/BV1iJ411d7jS?p=2 JVM 使用C 编写的 ,所以 JAVA 也叫 C+±- JRE = JVM + JDK =要学习《深入理解JVM》这本书。P1、JVM的学习方式 10:01 P2、JVM的体系结构 11:57 P3、类加载器及双亲委派机制 31:48 P4、Java历史-沙箱安全机制
转载 2023-07-21 15:49:44
68阅读
一、JMM内存模型        JMM全称是Java内存模型,注意千万不要和JVM虚拟机内存也就是堆、栈这些搞混淆。其实严格意义来说应该在它名字中加上“线程”两个字,叫Java线程内存模型更合适。JMM的关键技术点都是围绕着多线程的原子性、可见性和有序性来建立的。    &nb
1、在线监控工具1.1、JPS (打印Java进程信息)使用场景 :指令格式 :[hostid] : 远程地址,可选参数,指定特定主机的IP或者域名,也可以指定具体协议端口,不指定则查看当前机器的相关信息,hostid所指机器必须开启jstatd服务。常用命令: jps -l 事例: root@iZ2zeedq00kd0auas2yokqZ:/home/nginxWebUI/temp#
原创 精选 11月前
453阅读
一、内存溢出 虚拟机栈和本地方法栈溢出:-Xss256k package com.jedis; import java.util.LinkedList; import java.util.List; public class Demo1 { private int len = 1; private
转载 2019-05-03 11:14:00
92阅读
2评论
前言这篇文章,同样给大家聊一个硬核的技术知识,我们通过Kafka内核源码中的一些设计思想,来看你设计Kafka架构的技术大牛,是怎么优化JVM的GC问题的?1、Kafka的客户端缓冲机制首先,先得给大家明确一个事情,那就是在客户端发送消息给kafka服务器的时候,一定是有一个内存缓冲机制的。也就是说,消息会先写入一个内存缓冲中,然后直到多条消息组成了一个Batch,才会一次网络通信把Batch发送
目录1,性能优化的步骤2,常用命令工具1,jps:查看 Java 进程2,jstat:查看 JVM 统计信息3,jinfo:查看修改 JVM 配置参数4,jmap:导出内存映像文件5,jhat:分析堆转储文件6,jstack:查看线程快照7,jcmd:多功能命令行3,图形化分析工具4,JVM 运行时参数1,JVM 参数选项的类型2,打印及设置 JVM 参数3,设置堆、栈、方法区等大小4,内存溢出
1 GC相关内存1.1 内存划分1.1.1 堆(Heap)存放 new MyClass() 的对象,是GC的主要区域,-Xms / -Xmx 分别是堆的初始容量、最大可扩展容量,建议初始值设置为最大值,以免反复扩展或缩减的开销;新生代(Young Generation):又划分为 Eden(伊甸园,新生区), Survivor#0(幸存区S0), Survivor#1(幸存区S
JVM
转载 2018-02-09 14:30:09
3813阅读
jvm调优思路及调优案例 我们说jvm调优,其实就是不断测试调整jvm的运行参数,尽可能让对象都在新生代(Eden)里分配和回收,尽量别让太多对象频繁进入老年代,避免频繁对老年代进行垃圾回收,同时给系统充足的内存大小,避免新生代频繁的进行垃圾回收。从而减少STW(stop the world)的时间。调优思路项目运行内存分析 我们运行应用程序时,一般会设置一些jvm参数,比如堆内存大小,年轻代
JVM运行时数据区Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途
原创 2022-08-06 01:12:28
361阅读
目录通过javap命令查看class文件的字节码内容常量池​描述符字段描述符方法描述符解读方
原创 2022-01-20 15:22:13
108阅读
在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemo
原创 2021-12-29 14:25:31
128阅读
在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下文称OOM)异常的可能。(本文主要是基于 jdk1.8 展开探讨) Jav
原创 2022-04-12 16:00:43
108阅读
目录通过javap命令查看class文件的字节码内容常量池​描述符字段描述符方法描述符解读方法字节码图解研究i++与++i的不同查看字节码对比分析字符串拼接孰优孰劣小结通过javap命令查看class文件的字节码内容通过javap命令查看字节码并将内容写入到Test1.txt文件中的命令:javap -v Test1.cl...
原创 2021-07-02 14:07:15
248阅读
对项目i..net网站进行了接口的压测,压测过程中发现各微服务的heap内存设置过小(-Xms64m–Xmx128m),导致压测过程中服务假死(频繁fullgc导致服务假死)和发生OOM。1、签到接口的压测情况如下,150并发进行压测,发现响应时间在小于1s一段时间后,响应时间陡升到3s。2、Tps也是从420陡降到60左右。3、trace调用链跟踪发现xxxxsevice中的xxxxWorkti
原创 2020-10-12 09:06:48
2083阅读
2点赞
4评论
Java虚拟机栈Java虚拟机栈(Java Virtual Machine Stack)采用栈的数据结构来管理方法调用中的基本数据,先进后出(Fir
原创 精选 5月前
177阅读
JVM一.概述1.JAVA内存结构2.JAVA内存模型3.JVM特点二.类加载子系统1.类加载过程1.1 加载1.2 链接1.2.1 验证 Verify1.2.2 准备 Prepare1.2.3 解析 Resolve1.3初始化1.3.1 构造方法、成员变量初始化、静态成员变量三者的初始化顺序2.类加载器的分类3.双亲委派机制3.1 工作原理3.2 沙箱安全机制3.3 双亲委派机制的优势4.如何
目录1 项目上线遇到的问题2 jvm的运行参数2.1 标准参数2.1.1 -D<名称>=<值>2.1.2 -server 和 -client2.2 -X 参数(非标准参数)2.2.1 -Xint2.2.2 -Xcomp2.2.3 -Xmixed2.2.4 -Xms 设置堆内存初始化大小2.2.5 -Xmx 设置堆内存最大大小2.3 -XX 参数(使用效率高)2.3.1 b
介绍在生产环境中,经常会遇到各种各样奇葩的性能问题,所以掌握最基本的JVM命令行监控工具还是很有必要的名称主要作用jps查看正在运行的Java进程jstack打印
原创 2022-08-06 01:08:10
122阅读
深入理解JVM - 实战JVM工具(下) 前言 ​ 接着上篇继续讲述,上一篇模拟了两个还算比较熟悉的场景,分析了之前老年代优化是如何处理的,以及使用jstat分析工具如何分析出JVM的问题,这一节会继
原创 2022-04-22 10:40:05
158阅读
这篇文章主要介绍一下常用的JVM工具,当然介绍这些工具是没有意义的,因为不去使用吃个饭基本就会忘光,所以这篇文章主要为使用工具实操一下大致如何和调优代码。
原创 2022-04-22 10:43:09
75阅读
  • 1
  • 2
  • 3
  • 4
  • 5