
jvm
文章平均质量分 55
lang20150928
stay hungry stay foolish
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
系统内存超过比例打印JVM日志
import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.stereot原创 2022-04-28 20:05:28 · 231 阅读 · 0 评论 -
birt打印pdf内存溢出查询
首先通过top命令查看 top - 10:36:06 up 377 days, 19:01, 4 users, load average: 7.58, 5.58, 3.58 Tasks: 321 total, 3 running, 318 sleeping, 0 stopped, 0 zombie %Cpu(s): 79.4 us, 1.2 sy, 0.0 ni, 11.7 id, 7.4 wa, 0.0 hi, 0.2 si, 0.0 st KiB Mem : 16266732原创 2022-03-18 10:48:47 · 452 阅读 · 0 评论 -
不可变与线程安全
通过锁方法解决多线程安全问题,但性能不好 考虑锁细化 This combination of an immutable holder object for multiple state variables related by an invariant,and a volatile reference used to ensure its timely visibility, allows VolatileCachedFactorizer to be thread-safe even though it原创 2022-03-15 23:17:45 · 107 阅读 · 0 评论 -
JVM对象创建与内存分配机制深度剖析
JVM专题 对象的创建 对象创建的主要流程: 类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 new指令对应到语言层面上讲是,new关键词、对象克隆、对象序列化等。 分配内存 在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定,为对象分配空间的任务等同于把 一块确定大小的内存从Java堆中划分出来。.原创 2022-02-01 20:32:48 · 192 阅读 · 0 评论 -
JVM内存模型深度剖析与优化
JVM专题 JDK体系结构 Java语言的跨平台特性 JVM整体结构及内存模型 补充一个问题: 在minor gc过程中对象挪动后,引用如何修改? 对象在堆内部挪动的过程其实是复制,原有区域对象还在,一般不直接清理,JVM内部清理过程只是将对象分配指针移动到区域的头位置即可,比如扫描s0区域,扫到gcroot引用的非垃圾对象是将这些对象复制到s1或老年代,最后扫描完了将s0区域的对象分配指针移动到区域的起始位置即可,s0区域之前对象并不直接清理,当有新对象分配了,原有区域里的对象也就被清除了。.原创 2022-02-01 19:58:47 · 142 阅读 · 0 评论 -
从JDK源码级别彻底剖析JVM类加载机制
JVM专题 类加载运行全过程 当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM。 package com.tuling.jvm; public class Math { public static final int initData = 666; public static User user = new User(); public int compute() { //一个方法对应一块栈帧内存区域 int a.原创 2022-02-01 17:11:24 · 165 阅读 · 1 评论 -
JVM专题
从JDK源码级别彻底剖析JVM类加载机制原创 2022-02-01 16:47:01 · 422 阅读 · 0 评论 -
JVM之jcmd
JCMD整合了JVM基础工具 E:\arthas\20210617 λ jcmd 10784 sun.tools.jcmd.JCmd 8024 org.jetbrains.idea.maven.server.RemoteMavenServer36 3036 4108 com.xquant.platform.test.trade.server.TradeTestServerStartMain E:\arthas\20210617 λ jcmd 4108 GC.class_histogram | head -原创 2021-06-17 17:12:38 · 310 阅读 · 0 评论 -
JVM学习之内存溢出
查看JVM参数的网站地址: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html Java堆内存溢出异常测试 package jvm; import java.util.ArrayList; import java.util.List; /** * @author: guanglai.zhou * @date: 2021/6/17 13:27 * @description: VM Args: -Xms20m -Xm原创 2021-06-17 14:43:23 · 204 阅读 · 1 评论 -
Java小工具查看JVM信息
jps $ jps 8864 KotlinCompileDaemon 9536 AssertTestClientStartMain 10692 Jps 6564 9588 Launcher 2988 Launcher 8556 Launcher jmap 打印每个class的实例数目,内存占用,类全名信息 head -20 打印排行前20的 jmap -histo 9536 | head -20 $ jmap -histo 9536 | head -20 num #instances原创 2020-09-08 11:31:43 · 395 阅读 · 0 评论 -
JVM
类编译 类加载 对象实例化 JVM 内存布局 垃圾回收器原创 2020-03-22 20:18:02 · 138 阅读 · 0 评论