`
scarlettli
  • 浏览: 55321 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

GC内存泄露问题

阅读更多
不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露。其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。如果我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了。当然java的,内存泄漏和C/C++是不一样的。如果java程序完全结束后,它所有的对象就都不可达了,系统就可以对他们进行垃圾回收,它的内存泄露仅仅限于它本身,而不会影响整个系统的。C/C++的内存泄露就比较糟糕了,它的内存泄露是系统级,即使该C/C++程序退出,它的泄露的内存也无法被系统回收,永远不可用了,除非重启机器。

Android的一个应用程序的内存泄露对别的应用程序影响不大。为了能够使得Android应用程序安全且快速的运行,Android的每个应用程序都会使用一个专有的Dalvik虚拟机实例来运行,也就是说每个应用程序都是在属于自己的进程中运行的。Android为不同类型的进程分配了不同的内存使用上限,如果程序在运行过程中出现了内存泄漏的而造成应用进程使用的内存超过了这个上限,则会被系统视为内存泄漏,从而被kill掉,这使得仅仅自己的进程被kill掉,而不会影响其他进程(如果是system_process等系统进程出问题的话,则会引起系统重启)。
分享到:
评论

相关推荐

    android的GC内存泄露问题

    本篇文章主要介绍了android GC内存泄露问题,具有一定的参考价值,有需要的可以了解一下。

    AviatorEvaluator执行脚本导致Metaspace不足引发频繁 Full GC

    AviatorEvaluator执行脚本导致Metaspace不足引发频繁 Full GC故障机经过 故障机经过 数据分析&特征平台DMP 最近频繁发生Full GC, 引发集群卡顿,导致经常超时,按照常规的方法,肯定是先看GC 日志 2020-02-17T10:17:...

    内存泄漏检测工具(tMemMonitor)

    Tencent tMem Monitor (简称TMM) 运行时C/C++内存泄漏检测工具 ...TMM中引入GC机制,内存泄露检测准确率可达100%,无需内存快照,不影响目标程序性能,极简操作,是每个程序员都值得拥有的开发助手。

    java内存管理以及GC

    内存管理简介 内存管理的职责为分配内存,回收内存。 没有自动内存管理的语言/...另一个典型问题为内存泄露,内存已经分配,但是已经没有了指向该内存的指针,导致内存泄露。 程序员要花费大量时间在调试该类问题上

    最好用的内存泄漏分析工具 ------ tMemMonitor (TMM)

    tMemMonitor(TMM)是一款运行时C/C++内存泄漏分析工具,其检测结果专业、准确,...TMM中引入GC机制,内存泄露检测准确率可达100%,无需内存快照,不影响目标程序性能,极简操作,是每个程序员都值得拥有的开发助手。

    Tomcat 检测内存泄漏实例详解

    一般情况下,如果我们重启web应用是通过重启tomcat的话,则不存在内存泄漏问题。但如果不重启tomcat而对web应用进行重加载则可能会导致内存泄漏,因为重加载后有可能会导致原来的某些内存无法让GC回收,例如web应用...

    console.log 一定会导致内存泄漏?不打开 devtools 就不会

    不打开 devtools 怎么确定内存泄漏问题呢? 看下内存大小不就知道了? 通过 performance.memory.totalJSHeapSize 是可以拿到堆内存大小的。 我们通过分析 console.log 的代码执行后的堆内存大小变化就行。

    java 内存泄漏

    java 内存泄漏

    windows phone PhotoCamera VideoBush引发的内存泄漏

    1、打开主页面,点DO GC,看到当前内存,多点几次,内存为一个稳定制。 2、进入“PhotoCameraPage”(不拍照),然后返回,再“DO GC”,如此往复数次,PhotoCameraPage页面析构,仍然会发现内存每次1M的上升。而...

    性能测试总结之内存泄露和内存溢出

    刚刚做完了一个项目的性能测试,“有幸”也遇到了内存泄露的案例,所以在此和大家分享一下。主要从以下几部分来说明,关于内存和内存泄露、溢出的概念,区分内存泄露和内存溢出;内存的区域划分,了解GC回收机制;...

    浅谈CC++内存泄漏及其检测工具

    浅谈C/C++内存泄漏及其检测工具2006-04-03 09:00 作者: 出处: 温馨小屋 责任编辑:>方舟 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart...

    java内存泄漏

    这个问题,我们需要知道GC在什么时候回收内存对象,什么样的内存对象会被GC认为是“不再使用”的。  Java中对内存对象的访问,使用的是引用的方式。在Java代码中我们维护一个内存对象的引用变量,通过这个引用变量...

    C#2005动态增删控件的内存泄露例子

    开发环境为vs2005,本想实现控件动态添加,删除的功能,却发现了一个.net 2.0内存泄露的bug(至少对程序员来说是一个陷阱吧) 在form1.cs中有两处代码分别是: this.Controls.Add(rb);//1 将动态生成的控件加入到主窗口...

    JVM的基础和调优【JMM 内存结构 GC OOM 性能调优 ThreadLocal】

    内存泄露:是指程序在申请内存后,无法释放已申请的内存空间就造成了内存泄露, 一次的内存泄露似乎不会有大的影响,但是内存泄露堆积的后果就是内存溢出 JMM 决定一个线程对共享变量的写入何时对另一个线程可见,...

    使用_.Net_Memory_Profiler_诊断_.NET_应用内存泄漏(方法与实践)

    用 .NET Memory Profiler 跟踪.net 应用内存使用情况--基本应用篇 .NET Memory Profiler 跟踪.net 应用内存使用情况--基本应用篇

    Android内存泄漏信息介绍(英文)

    Android内存泄漏说明文件 英文 08-06 13:53:42.082: D/dalvikvm(12152): GC_CONCURRENT freed 1842K, 12% free 15412K/17399K, paused 1ms+3ms

    内存泄露解决方法

    线上内存泄露现象,面临JVM内存泄漏常用调优方法、GC优化

    tMemMonitor (TMM) ------------最好用的内存泄漏分析工具 (英文版)

    tMemMonitor(TMM)是一款运行时C/C++内存泄漏分析工具,其检测结果专业、准确,...TMM中引入GC机制,内存泄露检测准确率可达100%,无需内存快照,不影响目标程序性能,极简操作,是每个程序员都值得拥有的开发助手。

    解决Android使用Handler造成内存泄露问题

    一、什么是内存泄露?  Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收。也就是说,一个对象不被任何引用所指向...

Global site tag (gtag.js) - Google Analytics