用Jvisualvm定位开发中的问题

开发中遇到一个需求需要定时器实现,按照文档配置好Spring定时器,时间定到某个点重启Tomcat等待时间,等时间到了发现定时器未能执行,启动Tomcat过程中也没有发现错误
打开JDK1.6自带的故障检测工具,先监听到APP占用的JVM进程号,点击Heap dump 按钮后生产heap dump文件,搜索Spring定时器的类,发现已经加载到内存中,但是没有初始化(没有创建实例),重新审查XML文件,发现有一个属性叫做default-lazy-init=true,顿时恍然大悟,原来加上这个属性当应用服务器启动时,Spring只是负责将这些类加载到JVM中,并没有初始化这些类,将这个属性改为false后,发现启动时间也延长了2S以上,定时器的功能也可以运行。
使用JVisualVM分析dump文件定位OOM 阅读详情

相关推荐

实操---->创建一个OOM或者FullGC,生成jvm的dump文件,通过jvisualvm工具或者MAT工具解析

实操---->创建一个OOM或者FullGC,生成jvm的dump文件,通过jvisualvm工具或者MAT工具解析

咸鱼老潘的编码生活 2463

java 线上生产问题排查思路,jvm内存溢出实例重启原因排查生产实战

项目组线上生产环境不定期的发生内存爆满然后实例重启,实例发布上线后实例内存不断增长最后维持在百分之九十多,十分危险。因此我参与到了排查中,本篇博客将记录排查过程和思路。

HumorChen的博客 2732

Java 调试神器:使用 VisualVM 定位问题,一针见血

VisualVM 是一款集成了多种 JDK 工具的 Java 调试神器,能够帮助开发者监控、分析和解决 Java 应用程序的性能、内存、线程等问题。通过 VisualVM,开发者可以轻松连接本地或远程的 Java 应用程序,查看实时的 JVM 概览、内存使用情况、线程状态等数据。其强大的内存分析功能可以帮助定位内存泄漏问题,而线程分析功能则能检测并解决线程死锁。此外,VisualVM 还提供了性能分析工具,帮助开发者优化代码性能。通过实际案例,VisualVM 展示了其在解决内存泄漏问题中的高效性。总之,V

shrgegrb的博客 1673

Java问题诊断工具——JVisualVM

JVisualVM是一款支持对CPU、内存运行进行采样、配置的可视化的界面。

aqin1012的博客 24万+

JVisualVM简介与内存泄漏实战分析

JVisualVM简介与内存泄漏实战分析,如何分析内存溢出,定位内存溢出问题

MQTT阿里云OTA 调试记录

2.验证,这个验证是什么意思呢,就是阿里云会把你包的信息,比如包大小,streamid(相当于包的识别码),版本号发送给你的设备,然后如果你没发送升级成功的包给阿里云,这里会是一直验证中的状态,那你的设备每次重新连接阿里云,发送connect包给阿里云的时候,阿里云就会发送一次这个验证(upgrade)包。提取到了之后就可以发送请求包了,这个请求包比较坑,也可能是我没付费,他的包一次最多只有1024个字节的数据。之前说了,验证状态下,设备发送connect包给阿里云,阿里云就会发一个upgrade包给你。

qq_42585211的博客 1231

windows下intellij idea开发中通过jstack与jvisualvm找到线程阻塞

用ida打开运行项目中一个【测试用例】,发现日志停在一个地方不对,多次重试一直是输出相同日志后没有后续日志,所以断定应该是pull代码后,代码修改,什么地方阻塞了线程 idea启动项目 打开cmd,jps找到进程JUnitStarter ,这是测试用例的进程 jstack -l 12988 > jstack.out vscode打开jstack.out,看到最下面有 这就是测试用例主进程...

老专家的博客 3784

手把手教你用Matlab搞定GRACE RL06数据读取:冯伟老师工具箱无GUI版实战

本文详细介绍了如何使用Matlab处理GRACE RL06数据,重点解析了冯伟教授工具箱的无GUI版实战操作。通过环境配置、核心函数改造和批处理技巧,帮助科研工作者高效完成重力场数据的读取与分析,特别适合服务器集群环境下的批量处理需求。

weixin_29313817的博客 200

4个java死锁工具:jstack、jconsole、jvisualvm、jmc

在 Java 中,死锁(Deadlock)情况是指:两个或两个以上的线程持有不同系统资源的锁,线程彼此都等待获取对方的锁来完成自己的任务,但是没有让出自己持有的锁,线程就会无休止等待下去。线程竞争的资源可以是:锁、网络连接、通知事件,磁盘、带宽,以及一切可以被称作“资源”的东西。 在程序执行的时候,难免会遇到死锁的情况。 下面介绍一下如何排查Java中的死锁线程。 先来个死锁的例子: import java.util.concurrent.TimeUnit; import java.util.concur

HaC 的博客 1719

IGV新手必看:5分钟搞定ChIP-seq/DAP-seq/ATAC-seq数据可视化(附常见报错解决方案)

本文为IGV新手提供了一份快速上手的实战指南,详细讲解了如何高效完成ChIP-seq、DAP-seq、ATAC-seq等数据的可视化。内容涵盖软件安装、基因组导入、文件格式转换与优化,并重点剖析了“导入后一片空白”等常见报错的根本原因与解决方案,帮助用户在5分钟内避开雷区,生成可用于发表的IGV专业图谱。

weixin_29198045的博客 539

深入浅出:用状态机搞定FPGA MIG控制器与DDR3的读写时序(附Verilog源码分析)

本文深入解析了如何利用状态机精准控制FPGA MIG控制器与DDR3的读写时序,涵盖Verilog源码实现、关键时序控制点及实战优化技巧。通过状态机设计、跨时钟域处理和带宽优化等方法,有效提升DDR3访问效率,适用于高性能计算和AI加速器等场景。

weixin_26899659的博客 408

Java 如何查看线程信息? jps jstack jvisualvm使用

在命令行输入 jps就会显示所有java线程的信息 主要是pidjps(Java Virtual Machine Process Status Tool)可以结合jstack 打印出某一时刻的堆栈信息比如检查死锁: 运行这一段程序,在命令行输入 jps找到线程的pid为27976,再输入: jstack 27976 就会有一大堆信息 显示程序中有一处死锁。jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定

trigger的博客 2258

告别手动维护!教你用SAP BAPI批量更新生产订单BOM组件(CO02工单)

本文详细介绍了如何利用SAP BAPI实现生产订单BOM组件的批量更新,解决传统手工操作(如CO02工单)效率低下的问题。通过核心函数解析和批量处理框架设计,帮助用户大幅提升工作效率,降低错误率,适用于物料主数据变更、季节性配方调整等场景。

weixin_30844577的博客 561

Java 问题定位工具

JDK 自带了很多命令行甚至是图形界面工具,帮助我们查看 JVM 的一些信息。具体可以看jdk的bin目录有很多工具。

acq的博客 628

【3D计算机视觉】从PointNet到PointNet++理论及pytorch代码

从PointNet到PointNet++理论及代码详解1. 点云是什么1.1 三维数据的表现形式1.2 为什么使用点云1.3 点云上以往的相关工作2. PointNet2.1 基于点云的置换不变性2.1.1 由对称函数到PointNet(vanilla)2.1.2 理论证明2.2 基于点云的旋转不变性2.3 网络总体结构2.4 实验结果和网络的鲁棒性2.5 代码解析3. PointNet++3.1...

小执着的博客 8万+

从NHANES到发表:如何用survey包完成符合CDC要求的统计分析(含完整R代码)

本文详细介绍了如何利用R语言的survey包,对美国国家健康与营养调查数据进行符合CDC要求的统计分析。文章重点解析了NHANES数据的复杂抽样设计、权重变量的正确选择与调整,并提供了从数据获取、清洗、构建调查设计对象到执行加权回归及生成发表级表格的完整R代码实战指南,帮助研究者避免常见错误,确保分析结果的准确性与可发表性。

weixin_29054245的博客 521

内存溢出问题定位方法

内存溢出问题定位方法 设置虚拟机参数: -XX:+HeapDumpOnOutOfMemoryError 设置完成后,当出现内存溢出的时候会在项目对应的目录下生成一个.hprof结尾的文件 使用工具进行分析: 工具一: eclipseMemoryAnalyzer 下载地址:https://www.eclipse.org/mat/downloads.php 解压打开 Me...

迟到的help的博客 1115

12、认知地图的建模与学习

本博客系统介绍了认知地图的定义、背景及其在机器智能领域的应用,重点探讨了模糊认知地图(FCMs)的建模方法与优势。文章还对比分析了几种主流的认知地图模型(如Axelrod模型、Kosko模型等),并讨论了模型的稳定性条件及实际应用前景。通过智能制造和医疗诊断的具体案例,展示了认知地图在复杂因果推理中的强大能力,并提出了模型优化方向与未来研究展望。

plant的博客 210

JVM调试与监控:使用JVisualVM、JProfiler、JConsole进行性能监控、内存分析与线程调试

Java应用运行时,JVM负责管理内存、线程、垃圾回收等多个方面的工作。为了确保Java应用的稳定性与高性能,合理使用JVM的监控与调试工具至关重要。JVisualVM:JDK自带的图形化性能监控工具,用于监控JVM的内存、CPU使用情况、线程活动、垃圾回收等。JProfiler:一款功能强大的商业性能分析工具,提供详细的性能数据,包括内存分析、CPU分析、线程分析等。JConsole:JDK自带的监控工具,通过JMX协议对JVM进行监控,适用于实时监控应用的状态。

一碗黄焖鸡三碗米饭的博客 771

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java性能问题定位

一句话总结:从问题现象为入口,归结为3类问题进行定位分析:内存满、CPU高、线程阻塞。首先先介绍下jvisualvm这款jdk自带的性能工具。通常我们要定位哪块代码性能差,耗时久,最原始的办法就是在各个方法前后日志打印时间戳并计算耗时,这种方法很繁琐,通常要加很多日志多次部署才能定位到,我一开始也是这么搞的。而使用jvisualvm工具则可以直接查看整个业务代码调用链中各个方...

weixin_33699914的博客 108

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JVM问题排查——死锁

文章目录环境准备工作排查姿势一:使用JVisualVM排查姿势二:使用Jps+Jstack 环境 JDK8   准备工作 先准备好一个死锁程序:(程序是网上随便找的) public class DeadLock { public static String obj1 = "obj1"; public static String obj2 = "obj2"; pu...

m0_46311226的博客 2173

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

6 个 Java 开发工具,轻松分析定位 JVM 问题

这篇文章中介绍下如何使用 JDK 自带工具来分析和定位 Java 程序的问题。JDK 自带了很多命令行甚至是图形界面工具,帮助我们查看 JVM 的一些信息。比如,在我的机器上运行 ls 命令,可以看到 JDK 8 提供了非常多的工具或程序:接下来,我会与你介绍些常用的监控工具。你也可以先通过下面这张图了解下各种工具的基本作用:为了测试这些工具,我们先来写一段代码:启动 10 个死循环的线程,每个线程分配一个 10MB 左右的字符串,然后休眠 10 秒。可以想象到,这个程序会对 GC 造成压力: 修改 pom

程序源日志的博客 309

性能调优和压测看懂jvisualvm

为什么80%的码农都做不了架构师?>>> ...

weixin_34309435的博客 262

6 个 Java工具,轻松分析定位JVM问题

你可能一开始会比较畏惧使用复杂的工具去排查问题,又或者是打开了工具感觉无从下手,但是随着实践越来越多,对 Java 程序和各种框架的运作越来越熟悉,你会发现使用这些工具越来越顺手。这篇文章中介绍下如何使用自带工具来分析和定位 Java 程序的问题。

fuladulu的博客 709

使用JavaVisualVM排查FullGC问题

2.2 观察是否有本项目使用的类和对象,在dump文件中实例数或者内存占比额外大,有这种类或实例,和1中怀疑出现问题的地方互相印证,确定问题原因。在分析dump文件之前,我们可以先观察应用中接口的流量情况,或者根据一线反馈,去初步估计问题可能出现的位置,这样在后面的问题排查中更有目的性。根据问题出现场景和出现原因,以及问题产生的影响范围,记录开发过程中出现此问题的环节,在后续开发过程中避免此类问题再发生。2.3 如果不在之前怀疑出现问题的地方,去找使用这些实例多的方法以及这些方法的上下文,确定问题原因。

过河的小卒子的博客 1014

JAVA 工具定位JVM问题

Java 调试工具

A_com_Z的博客 1082
上一篇: 分析Spring AOP的动态代理实现原理
下一篇: 整理关于JVM方面的知识点
Program_newbie
博客等级 码龄18年 0粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值