`

java内存分析

    博客分类:
  • work
 
阅读更多

实时的工具有profilling/monitoring等,实时的方法固然好,但有网友称吞吐量过高的时候工具本身都很难运行,效果不好。

 

离线分析工具首选MAT,可以集成到eclipse做插件使用,也可以从官网下载独立程序。

 

 

 

finalize的用法,程序重写finalize函数后,当gc程序运行时就会调用finalize,我们可以在必要的情况下在finalize函数中写自己想要回收的对象,将他们从绑定中解除。因为有很多对象一直都在使用中,开发者自己不去解绑,gc永远都无法回收。

 

调用System.gc()会强制执行垃圾回收程序,当然,如果不去调用它,当程序内存使用过高时会自动执行。

 

 

 

防范不良代码:

 

1、查询数据库后cursor没有关闭

 

Cursor cursor = null;
try {
    cursor = getContentResolver().query(uri...);
    if (cursor != null && cursor.moveToNext()) {
      ....
    }

} finally {
    if (cursor != null) {
        try {
            cursor.close();
        } catch (Exception e) {
        }
    }
}

 

2、缓存convertView

 

public View getView(int position, Viewconvert View, ViewGroup parent)

 

初始化时,ListView会根据当前屏幕布局从BaseAdapter中取一定数量的view对象,同时ListView会将这些对象缓存起来,当ListView向上滚动的时候,原先位于最上边的listitem的view对象会被回收,然后被用来构造最新出现的listitem。这个构造过程就是由getView完成的。getView的第二个形参View convertView就是被缓存起来的listitem对象。初始化时缓存中没有对象则convertView是null。

 

 

public View getView(int position,Viewconvert View,ViewGroup parent){ 
            View view = null; 
            if(convertView != null){
                  view = convertView; 
                  populate(view , getItem(position)); 
                  ... 
            }else{ 
                  view = new Xxx(...);
                  ... 
            }            
            return view; 
}

 

3、Bitmap对象释放内存

 

有时我们会手工操作Bitmap对象,如果一个Bitmap对象比较占内存,当它不再被占用的时候,可以调用Bitmao.recycle() 方法回收此对象的像素所占用的内存,但这不是必须的。

 

 

 

分享到:
评论

相关推荐

    jProfiler7 java内存分析 linux版本

    本篇文章将详细探讨jProfiler7在Java内存分析上的核心功能、使用方法以及在Linux环境中的配置和应用。 1. **内存分析概述** - 内存分析是识别和解决Java应用程序中的内存泄漏、过度对象创建和内存消耗过高问题的...

    JAVA内存分析 - V1.0.0.zip

    Java内存分析是Java开发中非常重要的一个环节,它关乎到应用程序的性能和稳定性。"JAVA内存分析 - V1.0.0.zip" 提供了一套工具来帮助开发者深入理解并优化Java应用程序的内存使用情况。这个压缩包包含了两个关键文件...

    java内存解析(讲的很清楚的视频)

    java内存解析(讲的很清楚的视频)java内存解析(讲的很清楚的视频)java内存解析(讲的很清楚的视频)java内存解析(讲的很清楚的视频)java内存解析(讲的很清楚的视频)java内存解析(讲的很清楚的视频)java内存...

    Java 内存分析工具

    Java内存分析工具是Java开发过程中不可或缺的调试利器,主要用于检测和解决内存泄漏问题。内存泄漏是程序运行过程中,无法释放不再使用的内存空间,随着时间推移,会导致系统资源耗尽,性能急剧下降,甚至可能导致...

    java内存分析-内存泄露问题.rar

    Java内存分析是一个重要的主题,尤其是在开发复杂且性能要求高的应用程序时。内存泄露是Java程序员需要密切关注的问题,因为它们可能导致系统性能下降,甚至可能导致系统崩溃。本文将深入探讨Java内存分析和内存泄露...

    Mac OS java内存分析工具MAT

    **Mac OS上的Java内存分析工具MAT** 在Java应用程序开发中,内存管理是至关重要的,特别是对于大型、长期运行的应用程序,内存泄漏可能导致性能下降甚至系统崩溃。为了有效地诊断和解决这些问题,开发人员需要借助...

    Java内存分析工具ji

    Java内存分析工具ji Java内存分析工具ji是Java程序员不可或缺的工具之一,它可以帮助开发者快速地排查和解决Java内存泄漏问题。在本文中,我们将详细介绍Java内存泄漏的定义、原因、排查方法、解决方案,并提供一个...

    java内存分析工具dumpAnalyzer

    Java内存分析是优化应用程序性能的关键环节,特别是在处理大型或资源密集型应用时。"dumpAnalyzer"是一个专门用于此目的的工具,它提供了图形化的界面,帮助开发者深入理解系统的内存状况,找出潜在的性能瓶颈。本文...

    java内存分析工具介绍

    Java内存分析工具是Java开发过程中不可或缺的利器,主要用于检测和解决程序中的内存泄漏问题,以及进行性能监控。本文将深入探讨几种常用的Java内存分析工具,它们的特点、使用方法以及如何利用这些工具有效地优化...

    ibm HeapAnalyzer java内存分析工具 ha457.jar

    IBM HeapAnalyzer是一款强大的Java内存分析工具,主要用于诊断和解决Java应用程序中的内存泄漏问题。这款工具通过对Java堆内存的深入分析,帮助开发者定位那些占用过多内存的对象,从而优化应用性能。在Java开发过程...

    java内存分析常用工具和指令

    介绍了几种jdk自带的内存分析工具的简单使用,和一些java内置的命令

    基于eclipse的java内存分析工具MAT

    Java内存分析是优化应用程序性能和解决内存泄漏问题的关键步骤,尤其在使用Eclipse IDE时,MAT(Memory Analyzer Tool)是一个非常强大的工具。MAT基于Eclipse平台,为Java开发者提供了深入的内存剖析功能,帮助我们...

    MAT-Memory Analyzer Tool Java内存泄漏分析工具1.5

    MAT 是一个开源的java内存分析工具,能够快速的分析dump文件,可以直观的看到各个对象在内存占用的量大小,以及类实例的数量,对象之间的引用关系,找出对象的GC Roots相关的信息,此外还能生成内存泄露报表,疑似...

    Java内存分配全面解析

    Java内存分配全面解析 Java程序在执行过程中,其内存分配主要涉及到JVM(Java Virtual Machine,Java虚拟机)的不同区域。这些区域包括寄存器、栈、堆、常量池、代码段和数据段。理解这些内存区域的工作原理对于...

    MAT Java内存分析工具

    MAT(Memory Analyzer Tool)是Eclipse基金会开发的一款强大的Java内存分析工具,专为解决Java应用程序的内存泄漏和性能优化问题而设计。它提供了丰富的功能,包括堆dump分析、对象引用链追踪、内存消耗报告等,使得...

    Java内存分析技术在教学中的应用.pdf

    Java内存分析技术在教学中的应用 Java内存分析技术在教学中的应用是Java程序设计课程教学中的一件利器。本文介绍了Java内存分析技术及其在教学中的典型应用。Java程序运行在Java虚拟机(JVM)中,与其他一些语言...

    JAVA内存泄漏分析工具

    MAT(Memory Analyzer Tool)是IBM开发的一款强大的Java内存分析工具,它是标题中提到的具体分析工具之一。MAT提供了一种可视化的界面,通过分析heap dump文件,能够帮助我们深入理解Java应用程序的内存使用情况,找...

    java内存分析培训材料0918.pptx

    java内存分析培训材料,包括jvm内存分析工具、JVM工具与MAT介绍

    Java+内存分析工具+MAT

    Java内存分析是一个关键的优化步骤,特别是在开发大型的、高性能的应用程序时。MAT(Memory Analyzer Tool)是由IBM开发的一款强大的Java堆内存分析器,它的全名是Eclipse Memory Analyzer。这款工具是开源的,完全...

Global site tag (gtag.js) - Google Analytics