visual studio有自带的,可以看MSDN,不过一般来说,我们比较关注linux下的,搜了下,比较好用的应该有gprof和valgrind,先记录,可参考如下: http://blog.csdn.net/clarstyle/article/details/41747817?utm_source=itdadao&utm_medium=referral http://gernotklingler.com/blog/gprof-valgrind-gperftools-evaluation-to…
无 论怎么小心,想完全避免bad code是不可能的,此时就需要一些工具来帮助我们检查代码中是否存在会造成内存泄漏的地方. Android tools中的DDMS就带有一个很不错的内存监测工具Heap(这里我使用eclipse的ADT插件,并以真机为例,在模拟器中的情 况类似).用Heap监测应用进程使用内存情况的步骤如下: 1. 启动eclipse后,切换到DDMS视图,并确认Devices视图.Heap视图都是打开的: 2. 将手机通过USB链接至电脑,链接时需要确认手机是处于“USB调试”…
MAT是一个强大的内存分析工具,可以快捷.有效地帮助我们找到内存泄露,减少内存消耗分析工具.内存中堆的使用情况是应用性能监测的重点,而对于堆的快照,可以dump出来进一步分析,总的来说,一般我们对于堆dump快照有三种方式: 添加启动参数发生OOM时自动dump: java应用的启动参数一般最好都加上-XX:+HeapDumpOnOutOfMemoryError及-XX:HeapDumpPath=logs/heapdump.hprof,即在发生OOM时自动dump堆快照,但这种方式相当来说是滞后…
目录 前言 VisualVM 安装与配置 本地使用 远程监控 MAT 使用场景 安装与配置 获得堆转储文件 分析堆转储文件 窥探对象内存值 堆转储文件对比分析 总结 前言 本文将简要介绍Java线程与内存分析工具VisualVM和MAT的使用,进一步的学习可参考官网或工具帮助(例如MAT:Help -> Welcome -> Tutorials),并在实际工作中融会贯通. VisualVM Java VisualVM是JDK1.6后自带的可视化工具,提供图形界面以实时监控应用程序的线程状态.C…
一.JProfiler简介 JProfiler 是一个商业授权的Java剖析工具,由EJ技术有限公司,针对的Java EE和Java SE应用程序开发的.它把CPU.执行绪和内存的剖析组合在一个强大的应用中.JProfiler可提供许多IDE整合和应用服务器整合用途.JProfiler的是一个独立的应用程序,但其提供Eclipse和IntelliJ等IDE的插件.它允许两个内存剖面评估内存使用情况和动态分配泄漏和CPU剖析,以评估线程冲突.JProfiler直觉式的GUI让你可以找到性能瓶颈.抓…
前言 定位系统问题的时候,知识.经验是基础,数据是依据,工具是运用知识处理数据的手段.这里说的数据包括:运行日志.异常堆栈.GC日志.线程快照.堆转储快照等.经常使用适当的虚拟机监控和分析的工具可以加快分析数据.定位解决问题的速度. jps:虚拟机进程状况工具 首先约定一下运行的代码都是以下这段 public class TestMain { public static void main(String[] args) { while (true) { } } } JDK的很多小工具的名字都参考…
前言 定位系统问题的时候,知识.经验是基础,数据是依据,工具是运用知识处理数据的手段.这里说的数据包括:运行日志.异常堆栈.GC日志.线程快照.堆转储快照等.经常使用适当的虚拟机监控和分析的工具可以加快分析数据.定位解决问题的速度. jps:虚拟机进程状况工具 首先约定一下运行的代码都是以下这段 1 public class TestMain 2 { 3 public static void main(String[] args) 4 { 5 while (true) 6 { 7 8 } 9 }…
前言在运行java的时候有时候想测试云运行时占用内存情况,这时候就需要使用测试工具查看了.在eclipse里面有 Eclipse Memory Analyzer tool(MAT)插件可以测试,而在idea中也有这么一个插件,就是JProfilerl.下载安装打开idea,进入设置界面 安装之后重启即可. 安装成功后查看情况. 这是什么情况呢,这是这个插件启动需要依赖一个可执行的文件,就是源生的JAVA PROFILER 去官网下载 https://www.ej-technologies.com…
转载:http://blog.csdn.net/wanghuiqi2008/article/details/50724676 一.开发环境: 操作系统:ubuntu 14.04 IDE:Eclipse Java EE IDE for Web Developers. Version: Luna Service Release 2 (4.4.2) JDK版本:1.7.0_80 MAT版本:1.5.0 二.事件起因 最近通过公司的哨兵监控系统发现我的项目内存使用率每天都会增加一点,如下图.对于一个稳定…
1. jmap 1.1 概述 JVM Memory Map命令用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动生成dump文件. jmap不仅能生成dump文件,还可以查询finalize执行队列.Java堆和老年代的详细信息,如当前使用率.当前使用的是哪种收集器等. > jmap Usage: jmap [option] <pid> (to connect to running…