`
zhangdaiscott
  • 浏览: 448787 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
8fb25857-16b4-3681-ab5e-e319f45c42a8
Jeecg快速开发平台
浏览量:0
文章分类
社区版块
存档分类

MyEclipse Profile 结合visualvm 监控内存泄露

 
阅读更多
VisualVM是集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。在JDK Update7之后,VisualVM作为JDK的一部分发布,但同时VisualVM也发布独立的版本。VisualVM必须运行在JDK1.6以上的VM环境下,但可以用它来监控JDK1.4以上的JVM。
1:创建java工程VisualvmTest,写一个消耗内存的测试代码:
Java代码 复制代码收藏代码
  1. publicclassMemoryLeak{
  2. publicstaticvoidmain(String[]args)throwsInterruptedException{
  3. intMAX_CONSUMERS=10000;
  4. intSLEEP_BETWEEN_ALLOCS=5;
  5. ConsumerContainerobjectHolder=newConsumerContainer();
  6. while(objectHolder.size()<MAX_CONSUMERS){
  7. System.out.println("Allocatingobject"
  8. +Integer.toString(objectHolder.size()));
  9. objectHolder.add(newMemoryConsumer());
  10. try{
  11. Thread.currentThread().sleep(SLEEP_BETWEEN_ALLOCS);
  12. }catch(InterruptedExceptionie){
  13. //Donothing.
  14. }
  15. }//while.
  16. Thread.sleep(1000*60*60);
  17. }//main.
  18. }//EndofMemoryLeak.
  19. classConsumerContainerextendsVector{
  20. }
  21. classMemoryConsumer{
  22. publicstaticfinalintMEMORY_BLOCK=1024;
  23. publicbyte[]memoryHoldingArray;
  24. MemoryConsumer(){
  25. memoryHoldingArray=newbyte[MEMORY_BLOCK];
  26. }
  27. }//EndMemoryConsumer.


2:在MemoryLeak.java右键菜单选择【Profile As】->【Java Application】,在弹出如下窗口,选择【memory】.

3:程序开始启动运行,同时弹出visualvm窗口,如下图,【profile】tab可以看到对象大小比例。【监控】可以看到对的运行走向。

4:可以发现byte数组暂用比较大。在byte[]右键菜单选择【生成快照并显示栈分配跟踪】。能够快速定位在什么地方消耗比较大的内存,能够快速解决问题:



参考资料:VisualVM远程监控
分享到:
评论

相关推荐

    打造极速MyEclipse+由MyEclipse内存不足谈谈JVM内存

    - 分析MyEclipse的内存使用情况,使用内存分析工具如VisualVM或JProfiler,找出内存泄漏或过度消耗的源。 - 考虑使用更高效的JVM版本,如Oracle JDK或OpenJDK的最新版本,它们通常包含性能优化和内存管理改进。 ...

    myeclipse内存溢出问题解决方案

    内存溢出问题在Java开发中是一个常见的问题,尤其是在使用集成开发环境如MyEclipse时,由于资源消耗较大,可能会频繁出现。本文主要讨论如何解决MyEclipse中的内存溢出问题以及相关的Java内存管理知识点。 首先,...

    MyEclipse 内存溢出

    3. **使用内存分析工具**:通过VisualVM或JProfiler等工具监控MyEclipse的内存使用情况,找出内存占用高的对象或内存泄漏。 4. **管理工作空间**:避免在MyEclipse中打开大量或大型非代码文件,保持工作区简洁,...

    myeclipse内存溢出问题

    ### MyEclipse内存溢出问题解析与... - 使用工具如VisualVM等进行内存分析,找出内存消耗较高的部分,并针对性地进行优化。 通过上述方法,可以有效地解决MyEclipse中的内存溢出问题,提高开发效率和系统的稳定性。

    MyEclipse经常报内存不足解决方案

    在解决MyEclipse内存不足问题的过程中,一定要注意监控系统性能,避免过度分配内存导致系统缓慢甚至崩溃。通过合理配置和优化,可以有效地提高MyEclipse的运行效率,确保开发过程的顺畅。记得每次更改配置后重启...

    myeclipse-tomcat jdk内存溢出

    - 定期检查代码是否存在内存泄漏等问题,从根本上减少内存溢出的可能性。 - 对于生产环境,建议使用更严格的监控机制来预防和处理内存溢出问题。 通过以上步骤,可以有效地解决MyEclipse中Tomcat服务器出现的JDK...

    myeclipse 解决内存的问题

    ### MyEclipse解决内存问题详解 #### 一、引言 在使用MyEclipse开发工具的过程中,用户可能会遇到性能下降的问题,比如启动速度变慢、响应时间加长等。这些问题通常与MyEclipse所占用的内存资源有关。本文将详细...

    myeclipse内存溢出解决方法

    在使用MyEclipse进行开发时,可能会遇到内存溢出(Out Of Memory,OOM)的问题,这通常是由于程序运行过程中消耗的内存超过了系统分配的最大内存限额所导致的。内存溢出会严重影响开发效率,甚至导致软件崩溃。以下...

    MyEclipse修改jvm内存.docx

    MyEclipse修改jvm内存配置 MyEclipse是一款功能强大且广泛应用于企业级应用开发的集成开发环境(IDE)。在开发过程中,jvm虚拟机的内存配置直接影响着开发的效率和稳定性。如果jvm虚拟机的内存配置不当,可能会导致...

    MyEclipse内存不足问题

    标题与描述概述的知识点主要集中在解决MyEclipse内存不足的问题上,这通常发生在处理大型项目或资源密集型任务时。以下是对这些知识点的详细解析: ### 修改eclipse.ini 在MyEclipse的安装目录下,存在一个名为`...

    MyEclipse内存不足处理方案.txt

    ### MyEclipse内存不足处理方案 #### 背景与问题描述 在使用MyEclipse进行软件开发过程中,可能会遇到由于内存不足导致的各种问题。例如,当MyEclipse检测到永久代(Perm Gen,非堆内存)剩余空间少于5%时,会提示...

    解决MyEclipse运行项目内存溢出问题(原创-手写)

    解决MyEclipse运行项目内存溢出问题,下载后是个txt文件,里面包含了解决的步骤

    JVM参数配置及MyEclipse内存不足.rar

    - 分析应用的内存使用情况,使用内存分析工具如VisualVM,找出可能的内存泄漏。 - 根据项目需求,合理分配不同内存区域的大小,例如增大堆大小以应对大量对象创建,增加方法区大小以支持更多的类加载。 5. 注意...

    解决MyEclipse耗内存的办法

    然而,随着项目的复杂性和规模增加,用户可能会遇到MyEclipse消耗大量内存的问题,导致系统运行缓慢,甚至出现错误提示,如"Quick Update error"。这篇文章将深入探讨这个问题,并提供一系列解决MyEclipse内存消耗过...

    解决MyEclipse吃内存以及卡死的方法

    ### 解决MyEclipse吃内存及卡死的问题 在日常开发工作中,经常遇到MyEclipse占用大量内存甚至导致程序卡死的情况,这不仅影响工作效率,还可能造成数据丢失等问题。本文将详细介绍如何解决这些问题,帮助开发者提高...

    MyEclipse解决无响应

    当运行的项目复杂度较高或同时开启多个项目时,如果物理内存不足,MyEclipse可能会因内存溢出而变得缓慢甚至无响应。 2. **工作空间垃圾文件积累**:长时间使用后,工作空间内的.metadata文件夹可能会积累大量垃圾...

    Myeclipse下java.lang.OutOfMemoryError Java heap space的解决

    - 可以借助如VisualVM、Eclipse Memory Analyzer (MAT)等工具来监控和分析程序的内存使用情况。 - 通过这些工具可以帮助开发者更准确地定位到内存泄漏的位置,并给出优化建议。 5. **清理无用项目**: - 定期...

    用在MyEclipse的VM插件

    通过这个插件,开发者可以在不离开MyEclipse界面的情况下,进行JVM配置、性能监控、内存分析等一系列操作。这不仅简化了工作流程,也使得问题定位和性能优化变得更加便捷。 1. **配置与启动**:VM插件允许用户...

Global site tag (gtag.js) - Google Analytics