本机debugger就好了,远程的可以远程debugger, 在tomcat的catalina.sh里增加一行CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" 重启一下就可以在eclipse的Remote Java Application里通过ip和上面指定的端口进行远程debugger了。https://blog.csdn.net/shy_snow/article/details/79043148

内网生产无法远程debugger的怎么办?

使用jmap和jstack将堆内存(对象)和栈(方法)输出为文件然后下载下来进行查看。

pid:是jvm进程号,可以使用jps -ml或ps命令查看到

jvm内存对象统计:jmap -histo:live  pid

jvm内存对象查看:

先将内存导出为文件:   jmap -dump:format=b,file=dump.hprof pid

然后使用mat工具打开查看

里面有多个统计面板,类的占比,对象的引用关系,你可以看到占内存较多的类以及这些类被谁持有,结合方法栈和代码来继续分析。

jvm中线程执行中的方法(栈): jstack -l pid

可以看到方法调用,方法的行号,就知道线程在执行什么方法。这个只能看到java的堆栈,一些本地堆栈看不到可以使用linux的pstack pid命令来继续深入查看。

你还想看到方法的耗时和返回值?

那你要用arthas工具的trace和watch命令;

trace 方法内部调用路径,并输出方法路径上的每个节点上耗时

解压arthas-bin.zip后执行java -jar arthas-boot.jar或者as.sh进入arthas命令行界面

然后输入要查看的类和方法名,格式为 :

trace 类名   方法名

https://arthas.aliyun.com/doc/trace.html

https://blog.csdn.net/shy_snow/article/details/108338604

垃圾回收器与JVM性能监控工具介绍以及java多线程安全性介绍ppt

如何查看JVM内存中的对象和执行中的方法相关推荐

  1. java 内存情况_java查看jvm内存使用情况

    java查看jvm内存使用情况 (2012-03-22 15:50:54) 标签: jvm 内存 虚拟机 分配 it java.lang.Runtime类提供了查看当前JVM内存的使用情况.每个jav ...

  2. java查看jvm内存使用情况

    java查看jvm内存使用情况 (2012-03-22 15:50:54) 标签: jvm 内存 虚拟机 分配 it java.lang.Runtime类提供了查看当前JVM内存的使用情况.每个jav ...

  3. 查看jvm内存状态的方式 -NMT证明jvm内存多样性

    查看jvm内存状态的方式  1 图形化工具,如Jconsole.VisualVM 2 指令 jps jmap -heap/dump jstack 3 gc日志 4 NMT NMT详解 NMT特性可以用 ...

  4. 【C++】栈中实例化对象与堆中实例化对象

    一. 实例化对象写法的区别 栈中实例化对象: 堆中实例化对象: 最大区别就在于,从栈中申请内存,在使用完后无需释放,但是从堆中申请内存,使用完以后必须释放! 注意:从堆中申请内存,是有可能失败的,所以 ...

  5. java判断一个对象是否为空_Java中判断对象是否为空的方法的详解

    首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的: 另一种是org.springframework.util包下的.这两种StringU ...

  6. java if equals_Java中判断对象是否相等的equals()方法使用教程

    Object类中的equals方法用于检测一个对象是否等于另一个对象.在Object类中,这个方法判断两个对象是否具有相同的引用,如果两个对象具有相同的引用,它们一定是相等的.从这点上看,将其作为默认 ...

  7. win10提示“无法枚举容器中的对象 访问被拒绝”解决 方法完美版

    win10提示"无法枚举容器中的对象 访问被拒绝"解决 方法完美版 网上主流方法就是修改所有者,这里有引一位前辈的帖子 https://blog.csdn.net/qq_37653 ...

  8. java命令查看jvm内存

    JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps.jstack.jmap.jhat.jstat等小巧的工具,本博客希望能起抛砖引玉之用,让 ...

  9. 动态查看JVM内存的工具

    JAVA JPS 命令详解 JPS 名称: jps - Java Virtual Machine Process Status Tool 命令用法: jps [options] [hostid] op ...

最新文章

  1. 【技术短文】基于深度负相关学习的人群计数方法
  2. PCB中加入logo
  3. param注解报错_mybatis不加@Parm注解报错的解决方案
  4. oracle 迁库 教程,Oracle整库文件迁移步骤详解教程
  5. Spring MVC异常处理详解 ExceptionHandler good
  6. Lucene 索引维护 之 删除 与 更新 文档
  7. 【学习笔记】bootstrap之CSS组件
  8. fft qt 代码_FFT代码详解
  9. python实现DBSCAN(密度聚类)算法
  10. 计算机的云是什么意思_阿里巴巴计算机云是什么意思
  11. 群晖 nas docker 时间校准
  12. 智能汽车HMI“火了”
  13. postgresql下载linux版本
  14. 红米K40刷机导致基带丢失 基带未知 不读卡 没有串号 修复记录
  15. 【Jmeter】分布式测试--单机均衡负载压测
  16. Gridview的HyperLinkField操作
  17. python爬取收费素材_基于Python爬取素材网站音频文件
  18. 和 Cee 聊聊如何拿 Google Offer
  19. 计算机专业新生研讨课资料整合
  20. python交互模式下输出一首古诗

热门文章

  1. conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一 次。
  2. oracle数据库连接违反,Oracle 数据库连接的一些坑
  3. python怎么矩阵的秩_python – 从numpy或matlab中的满秩非矩形矩阵中获取可逆方阵...
  4. python批量读取文件内容_Python之批量读取文件【面试必学】
  5. 12年外贸婚纱跨境老司机分享独立站推广引流实操干货
  6. 务必了解的跨境电商ERP独立部署!
  7. 吴恩达|机器学习作业4.0神经网络反向传播(BP算法)
  8. 20190226-SecureCRT连接linux显示中文乱码
  9. GNS3全面详解系列-GNS3的前世今生
  10. 第十三:Pytest参数化-@pytest.mark.parametrize装饰器来实现数据驱动测试