001、开篇词:JVM 优化实战

Java异常性能开销:深入解析throw/catch的JVM内部成本 Java异常处理的关键性能开销主要来自异常实例创建、堆栈跟踪采集和处理流程。测试数据显示:基础异常创建耗时140-160ns,堆栈深度每增加5层耗时翻倍;正常流程与异常流程性能差距可达5000倍。优化手段包括减少堆栈深度(收益30-50%)、禁用堆栈采集(收益70%+)或复用异常实例(收益90%+),但需权衡调试信息损失等副作用。JVM通过栈帧折叠、异常路径消除等优化技术降低开销,但在高频场景仍需谨慎设计异常处理策略。 阅读详情

001、开篇词:JVM 优化实战,广大 Java 工程师心中永远的痛!

1、怎么统计FullGC的次数?

<1>、jstat -gc 命令

jstat -gc 12538 5000
即会每5秒一次显示进程号为12538的java进成的GC情况
显示内容说明如下:
         S0C:年轻代中第一个survivor(幸存区)的容量 (字节) 
         S1C:年轻代中第二个survivor(幸存区)的容量 (字节) 
         S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节) 
         S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节) 
         EC:年轻代中Eden(伊甸园)的容量 (字节) 
         EU:年轻代中Eden(伊甸园)目前已使用空间 (字节) 
         OC:Old代的容量 (字节) 
         OU:Old代目前已使用空间 (字节) 
         PC:Perm(持久代)的容量 (字节) 
         PU:Perm(持久代)目前已使用空间 (字节) 
         YGC:从应用程序启动到采样时年轻代中gc次数 
         YGCT:从应用程序启动到采样时年轻代中gc所用时间(s) 
         FGC:从应用程序启动到采样时old代(全gc)gc次数 
         FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s) 
         GCT:从应用程序启动到采样时gc用的总时间(s) 
         NGCMN:年轻代(young)中初始化(最小)的大小 (字节) 
         NGCMX:年轻代(young)的最大容量 (字节) 
         NGC:年轻代(young)中当前的容量 (字节) 
         OGCMN:old代中初始化(最小)的大小 (字节) 
         OGCMX:old代的最大容量 (字节) 
         OGC:old代当前新生成的容量 (字节) 
         PGCMN:perm代中初始化(最小)的大小 (字节) 
         PGCMX:perm代的最大容量 (字节)   
         PGC:perm代当前新生成的容量 (字节) 
         S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比 
         S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比 
         E:年轻代中Eden(伊甸园)已使用的占当前容量百分比 
         O:old代已使用的占当前容量百分比 
         P:perm代已使用的占当前容量百分比 
         S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节) 
         S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (字节) 
         ECMX:年轻代中Eden(伊甸园)的最大容量 (字节) 
         DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满) 
         TT: 持有次数限制 
         MTT : 最大持有次数限制  

<2>、运行jvm是添加打印GC的日志,然后统计一段时间内的FullGC的次数


-XX:+PrintGC 输出GC日志
-XX:+PrintGCDetails 输出GC的详细日志
-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)
-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
-XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息
-Xloggc:../logs/gc.log 日志文件的输出路径

2、OOM内存溢出的模块?怎么模拟?

3、OO内存溢出定位步骤?

4、内存模型是怎么样的?

5、内存结构是怎么样的?

6、垃圾算法有那些?

7、类加载

8、垃圾回收

9、JVM参数优化

智能驾驶域控制器的“终极大考”:解析EOL测试的核心价值与技术实践 在智能驾驶技术高速发展的今天,域控制器(Domain Controller)作为车辆“大脑”的核心部件,承担着传感器数据处理、决策规划、执行控制等关键任务。然而,这个集成了数十个芯片、运行着数百万行代码的复杂系统,如何确保其出厂前的功能安全与性能稳定?答案就藏在被称为“生产线最后一道防线”的EOL(End of Line)测试中。 阅读详情

相关推荐

周志华《机器学习》课程系列笔记——目录导航页

最近自学机器学习课程,注意到了南京大学周志华老师的课程。我是在学堂在线平台观看的,注意到b站上也有相应视频,但b站上并未获得授权,随时有消失的可能。周志华老师的网络教学视频中,与其西瓜书相比确实少了一些内容。但幸运的是,缺失的内容实际上对于初学者来说并不会产生太大影响。目前这一笔记也遵循视频内容,相比西瓜书中也会有一些缺失,敬请谅解。可能以后如果有机会和时间,我会再阅读周志华老师的书籍将缺失内容补全。一切内容敬请关注我的个人Page页面。

Sinocifengs的博客 1684

java 查看内存占用_查看JVM内存使用状况

1、jps:查看本地正在运行的java进程和进程ID(pid)2、jinfo pid,查看指定pid的所有JVM信息1)jinfo -flags pid 查询虚拟机运行参数信息。2)jinfo -flag name pid,查询具体参数信息,如jinfo -flagUseSerialGC 42324,查看是否启用UseSerialGC3、jmap1)jmap -heap pid:输出堆内存设置和...

weixin_33895572的博客 7725

YOLO11 锚框机制全解析:从改进 K-means 聚类到自适应优化,附多场景实战(附代码)

摘要 YOLO11的锚框机制采用"自适应、动态化、场景感知"的设计理念,通过数据驱动的锚框生成、多尺度感知分配和实时优化策略,显著提升目标检测性能。相较于早期YOLO版本,YOLO11的锚框完全基于训练集目标分布自适应生成,并引入智能分配策略,使不同尺寸目标获得最优匹配。技术架构包含自适应锚框生成、多尺度分配器和动态优化模块,通过改进的K-means聚类和交并比计算实现精准匹配。YOLO11锚框机制在检测精度、训练稳定性和场景适应性方面均有显著提升,为复杂场景下的目标检测提供更优解决方案

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1318

查看jvm内存使用情况

Jstat -gctuil 进程号 时间间隔 或者 -gc 显示的比较多 Jstat -gctuil 111 3000 4 每隔3秒输出一次111 进程占用的内存情况,,打印4次结果 -class: 统计class loader 行为信息 -compiler: 统计编译行为信息 -gc:统计jdk gc时heap信息 -gccapacity:统计不同的generations(

BigBirds911的博客 1716

从模糊到清晰:让AI教相机自动对焦的实战指南

AI自动对焦技术:让模糊照片成为过去式 深度学习驱动的自动对焦技术正颠覆传统摄影,使相机能在复杂场景下智能锁定焦点。相比传统对焦方法在弱光、低对比度环境下的失效,AI通过学习"清晰-模糊"规律,实现全场景精准对焦。本文详细解析了该技术的三大优势: 自适应各种光线条件; 毫秒级对焦速度; 突破物理限制的精度。 通过PyTorch搭建的CNN模型,展示了从数据采集到模型训练的全流程实战方案,包括使用拉普拉斯算子评估图像清晰度等关键技术。该技术已成功应用于手机摄影、工业检测、无人机航拍和安防监

LXY_LOVE36的博客 346

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案。

1291

Java问题诊断和排查工具(查看JVM参数、内存使用情况及分析等)

显示当前所有java进程pid的命令,我们可以通过这个命令来查看到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),不过jps有个缺点是只能显示当前用户的进程id,要显示其他用户的还只能用linux的ps命令。java程序启动后,会在目录/tmp/hsperfdata_{userName}/下生成几个文件,文件名就是java进程的pid,因此jps列出进程id就是把这个目录下的文件名列一下而已,至于系统参数,则是读取文件中的内容。推荐用JVisualVM。

syq8023的博客 7103

信捷PLC XD5系列运动控制(10轴)编程应用篇

项目PLC采用XD5-60T10-E,36DI 24DO 晶体管输出,支持10路脉冲输出功能。TMR指令定时器时基可以自己设定,这点比其他品牌PLC方便。ZRN指令我们需要上升沿指令触发。 5、变址寻址 该说不说这个变址寻址是真的强,比西门子指针、三菱的变址寄存器Z 、V都要更加灵活。 7、特殊寄存器:时钟 8、如何建立PLC通讯...............

RXXW_Dor的博客 1万+

查看JVM进程的内存情况

// DirectMemory.java package com.infuq.memory; import org.jctools.util.UnsafeAccess; import sun.misc.Unsafe; import org.openjdk.jol.info.ClassLayout; import org.openjdk.jol.vm.VM; import java.util.Scanner; public class DirectMemory { public static v

书唐瑞的博客 4729

华为OD机试 - 开源项目热度榜单(Java 2025 C卷 100分)

H = Wwatch X#watch + Wstar X#star +Wfork X#fork +Wissue X#issue +Wmr X#mr H表示热度值,Wwatch、Wstar、Wfork、Wissue、Wmr分别表示5个统计维度的权重,#watch、#star、#fork、#issue、#mr分别表示5个统计维度的统计值。

学Java,找哪吒 1755

【Python3教程】Python3高级篇之uWSGI 安装配置

本文介绍了在Python 3环境中安装和配置uWSGI的完整流程,涵盖基本安装、Flask/Django应用部署、Nginx集成以及systemd管理等关键环节。主要内容包括:uWSGI的安装前提条件,创建简单WSGI应用,编写uWSGI配置文件(.ini格式),与Nginx配合实现生产环境部署,以及使用systemd实现服务管理。文章还提供了常见Web框架(Flask、Django)的部署示例和高级配置建议,如负载均衡、HTTPS设置等。最后列出了权限、端口占用等常见问题的解决方案,为开发者提供了一套完整

No8g攻城狮的博客 436

命令查看jvm堆内存使用情况 年轻代 老年代(1)

当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,其中囊括了。

m0_72758098的博客 2127

【碳排放数据集】全球近实时网格化二氧化碳排放数据集GRACED

【碳排放数据集】全球近实时网格化二氧化碳排放数据集GRACED

WW、forever的博客 145

001.开篇词:JVM优化实战,广大Java工程师心中永远的痛!

开篇词: JVM优化实战,广大Java工程师心中永远的痛! 平时很多朋友跑来找我问以下一些类似的问题: 线上用Dubbo开发的一个系统突然卡死了,JVM FullGC太频繁,求救! 生产环境部署的一个系统隔几天就莫名其妙的进程崩溃,看了眼异常信息,说是OOM内存溢出,如何解决?在线等,急! 出去面试,光是说一些JVM的内存模型、垃圾回收算法,不够啊! 面试官怎么老是盯着我问生产环境...

wangbaolongaa的专栏 1527

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Jvm优化高手-笔记

年轻代的回收Full GC/Old GC : 前者是 老年代满了触发的gc,Full GC会回收所有内存空间 老年代、新生代、永久代,后者就是老年代GC。Mojor GC:不常用,需要问对方到底指的是 old gc 还是 full gcMixedGC:G1收集器中 老年代占比达到45%收集可以metaSpace 、java 虚拟机栈、堆内存。

洺润Star的博客 962

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Nashorn引擎:JVM上JavaScript性能优化的实战与启示

在Java虚拟机(JVM)生态中,运行动态语言如JavaScript一直面临核心挑战。JVM作为静态类型语言的运行时环境,其JIT编译、方法内联和逃逸分析等优化机制,主要针对类型稳定的场景设计。而JavaScript的动态类型特性,如变量类型可变、对象属性可动态增删,导致传统优化策略难以直接应用,性能优化成为技术难点。其技术价值在于,通过探索类型推断、调用点缓存等适配方案,为高并发服务端渲染、多语言运行时等场景提供了实践参考。Nashorn引擎作为JVM上运行JavaScript的经典案例,深入剖析了其在字

weixin_30443075的博客 321

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

你假笨JVM参数 - 001 ReservedCodeCacheSize

你假笨JVMPocket JVM参数分享全整理 序号:001 时间:2017-07-13 参数:-XX:ReservedCodeCacheSize 含义: Reserved code cache size (in bytes) - maximum code cache size 用于设置Code Cache大小,JIT编译的代码都放在Code Cache中,若Code Ca

小马王 2万+

synchronized锁升级之路: 从无锁到偏向锁再到重量级锁,JVM到底在优化什么

/ 创建多个线程制造激烈竞争,触发重量级锁i < 5;i++) {" 持有锁时Mark Word:");try {| 当前状态 | 升级条件 | 目标状态 | 升级成本 || 无锁 | 首次被线程获取 | 偏向锁 | 低(CAS设置ThreadID) || 偏向锁 | 另一线程竞争 | 轻量级锁 | 中等(需安全点+撤销) || 轻量级锁 | 自旋失败/竞争激烈 | 重量级锁 | 高(内核态切换) || 重量级锁 | 无法降级 | 重量级锁 | - |fill:#333;

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 1212

JVM GC优化

前言 JVM GC优化

懒猫的脚印 678

001-jvm学习路线

链接:https://www.bilibili.com/video/BV1yE411Z7AP?p=5

qq_36777191的博客 237

JVM的总结001

one------------class文件的加载过程:(重点是验证 准备 解析) 图片是最好的记忆工具,不用废话来解释了。 two---------------JIT的使用,什么是JIT,什么时候使用? jit就是JVM中的及时编译器。为了让程序跑的更加快的存在,当有些热点代码经常访问的时候,jit将他们编译为机器语言,放入高速缓存中,这样就可以提升效率了呢。 Three----...

weixin_30588827的博客 71

JVM系列-调优实战案例:频繁FullGC和OOM案例

JVM调优是面试中常问的问题,同时也是实际工作中可能遇到的难题,本文简单介绍JVM调优在实战中的应用。 一、JVM调优的目标 在程序上线前,需要根据需求预估用户数和并发量,并按照这个目标对JVM进行规划和预调优;同时程序运行时间久了,可能会出现程序卡顿、访问变慢等情况;严重时会出现OOM导致程序崩溃。这些情况都需要进行JVM的调优。 调优的目标通常有两个: 提高吞吐量(吞吐量=用户线程工作时间/(用户线程工作时间+GC垃圾回收时间)) 减少Stop-The-World的时间 二、调优相关的参数 JVM调

诸葛小猿 4285

一次非常有意思的SQL优化经历:从30248.271s到0.001s

作者:Java技术架构原文链接:https://www.toutiao.com/i6668275333034148356场景用的数据库是mysql5.6,下面简单的介绍下...

lentoo的博客 186

Arthas实战:高效排查JVM性能问题

在分布式系统和高并发场景下,JVM 性能问题往往成为瓶颈。Arthas 作为阿里巴巴开源的 Java 诊断工具,能够在不重启应用的情况下动态诊断 JVM 状态。以下从多个维度展开 Arthas 与 JVM 性能排查的实战方法。通过以上方法组合,可覆盖 80% 以上的 JVM 性能问题。循环计算导致的 CPU 峰值,通过堆栈定位到有问题的哈希算法实现。输出包含任务提交线程、参数及返回结果,有效定位异步超时问题。注意:仅支持方法体修改,不可变更方法签名或字段。典型场景:发现静态集合未清理导致的对象累积。

2501_94130882的博客 874

【JVM技术指南】「GC内存诊断-故障问题排查」一文教你如何打印及分析JVM的GC日志(实战分析上篇)

当我们在开发Java应用程序时,JVM的GC(垃圾回收)是一个非常重要的话题。GC的作用是回收不再使用的内存,以便程序可以继续运行。在JVM中,GC的日志记录了GC的详细信息,包括GC的类型、时间、内存使用情况等。在本文中,我们将介绍JVM GC日志的格式、含义和分析方法。

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。 2504

jvm学习笔记-001

## 常用java命令 javac :编译java代码。 java:运行编译后的字节码文件,.class文件。 javap -c :查看字节码文件 备注:查看字节码文件执行过程参照《jvm命令指令文档》 名称解释 线程栈:栈为每个线程分配内存,所以更像是线程。习惯叫它线程栈。 局部变量表:存放局部变量 操作数栈:数据操作 动态链接: 方法出口: 字节码执行流程 以Compute()方法为例 原方法如下: public int compute() { int a = 1; int b = 2; int c =

xiaojinniuzy的博客 102
上一篇: HashMap面试题1
下一篇: 002、Java代码到底是如何运行起来的
longyi_java
博客等级 码龄20年 24粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值