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 · 181 阅读 · 0 评论 -
birt打印pdf内存溢出查询
首先通过top命令查看top - 10:36:06 up 377 days, 19:01, 4 users, load average: 7.58, 5.58, 3.58Tasks: 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 stKiB Mem : 16266732原创 2022-03-18 10:48:47 · 337 阅读 · 0 评论 -
不可变与线程安全
通过锁方法解决多线程安全问题,但性能不好考虑锁细化This combination of an immutable holder object for multiple state variables related by an invariant,and a volatile reference used toensure its timely visibility, allows VolatileCachedFactorizer to be thread-safeeven though it原创 2022-03-15 23:17:45 · 70 阅读 · 0 评论 -
JVM对象创建与内存分配机制深度剖析
JVM专题对象的创建对象创建的主要流程:类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。new指令对应到语言层面上讲是,new关键词、对象克隆、对象序列化等。分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定,为对象分配空间的任务等同于把 一块确定大小的内存从Java堆中划分出来。.原创 2022-02-01 20:32:48 · 143 阅读 · 0 评论 -
JVM内存模型深度剖析与优化
JVM专题JDK体系结构Java语言的跨平台特性JVM整体结构及内存模型补充一个问题:在minor gc过程中对象挪动后,引用如何修改?对象在堆内部挪动的过程其实是复制,原有区域对象还在,一般不直接清理,JVM内部清理过程只是将对象分配指针移动到区域的头位置即可,比如扫描s0区域,扫到gcroot引用的非垃圾对象是将这些对象复制到s1或老年代,最后扫描完了将s0区域的对象分配指针移动到区域的起始位置即可,s0区域之前对象并不直接清理,当有新对象分配了,原有区域里的对象也就被清除了。.原创 2022-02-01 19:58:47 · 95 阅读 · 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 · 121 阅读 · 1 评论 -
JVM专题
从JDK源码级别彻底剖析JVM类加载机制原创 2022-02-01 16:47:01 · 365 阅读 · 0 评论 -
JVM之jcmd
JCMD整合了JVM基础工具E:\arthas\20210617λ jcmd10784 sun.tools.jcmd.JCmd8024 org.jetbrains.idea.maven.server.RemoteMavenServer3630364108 com.xquant.platform.test.trade.server.TradeTestServerStartMainE:\arthas\20210617λ jcmd 4108 GC.class_histogram | head -原创 2021-06-17 17:12:38 · 246 阅读 · 0 评论 -
JVM学习之内存溢出
查看JVM参数的网站地址: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.htmlJava堆内存溢出异常测试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 · 154 阅读 · 1 评论 -
Java小工具查看JVM信息
jps$ jps8864 KotlinCompileDaemon9536 AssertTestClientStartMain10692 Jps65649588 Launcher2988 Launcher8556 Launcherjmap打印每个class的实例数目,内存占用,类全名信息 head -20 打印排行前20的jmap -histo 9536 | head -20$ jmap -histo 9536 | head -20 num #instances原创 2020-09-08 11:31:43 · 340 阅读 · 0 评论 -
JVM
类编译类加载对象实例化JVM 内存布局垃圾回收器原创 2020-03-22 20:18:02 · 93 阅读 · 0 评论