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

GC内存泄露问题

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

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

相关推荐

    JProfiler对应用服务器内存泄漏问题诊断解决方案.docx

    JProfiler对应用服务器内存泄漏问题诊断解决方案 一、概述 本文主要介绍如何使用 JProfiler 对应用服务器内存泄漏问题进行诊断和解决。内存泄漏是指应用服务器中的一种常见问题,表现为内存长期不合理占用,内存...

    android的GC内存泄露问题

    本文将深入探讨Android中与GC(Garbage Collector)相关的内存泄露问题,以及如何识别和避免它们。 1. Android内存泄露概念: 尽管Java语言具有垃圾回收机制,但内存泄露仍可能发生。当一个对象不再被程序使用,但...

    Delphi new\dispose内存泄露问题解决方案

    当我们谈论"Delphi new\dispose内存泄露问题解决方案"时,我们聚焦的是如何正确地分配和释放内存,尤其是针对结构体指针和字符串类型,这是Delphi内存泄漏问题的常见来源。本文将深入探讨这个问题,并提供相应的解决...

    VisualGC 内存监控工具

    3. **对象统计**:插件还能提供对象的统计信息,包括存活对象数量、对象大小等,有助于识别可能存在的内存泄漏问题。 4. **线程堆栈分析**:结合Jvisualvm的线程分析功能,VisualGC可以揭示哪些对象导致了内存的...

    SWT内存泄露解决办法

    通过它,开发者可以观察到内存分配和GC(Garbage Collection)活动,识别可能的内存泄露。 2. **MAT (Memory Analyzer Tool)**:Eclipse 提供的专门用于分析Java堆内存的工具,它能帮助开发者定位内存泄漏的具体对象...

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

    内存泄露是Java程序员需要密切关注的问题,因为它们可能导致系统性能下降,甚至可能导致系统崩溃。本文将深入探讨Java内存分析和内存泄露问题。 首先,我们需要了解Java内存模型的基础。Java内存主要分为三个区域:...

    js内存泄露问题

    JavaScript内存泄露是一个重要的性能优化话题,尤其是在...对于IE浏览器,由于其早期版本的垃圾收集机制不完善,内存泄露问题更为突出,文档《理解并解决IE的内存泄漏方式》可能会提供更具体的针对IE浏览器的解决方案。

    如何解决Java内存泄漏

    然而,这种自动化管理也可能成为一把双刃剑,特别是当开发人员忽视无效对象的释放时,可能会导致内存泄漏问题。在实际项目中,内存泄漏不仅会影响系统的性能,还可能导致系统不稳定。因此,了解Java内存泄漏的成因、...

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

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

    memory analyzer 内存泄露

    在Java开发中,内存泄露问题尤为关键,因为Java的垃圾回收机制虽然自动处理大部分内存管理,但在特定情况下,仍然可能出现内存泄露。本文将围绕"MemoryAnalyzer"这个内存泄露检测工具,以及如何在Tomcat和JVM环境中...

    使用Android Studio检测内存泄露(LeakCanary)

    在应用的Application类中安装LeakCanary,这样每当应用运行时,它就会自动检测内存泄露,并在检测到问题时通过通知栏提供详细的泄漏信息。点击通知可以直接查看泄漏的对象和引用链,极大地简化了内存泄露的诊断过程...

    利用JProfiler对应用服务器内存泄漏问题诊断一例.doc

    利用 JProfiler 对应用服务器内存泄漏问题诊断一例 本文主要从应用的角度来解决中间件应用服务器的内存泄露问题,以提高系统的稳定性和性能。文章通过对某个大型项目的案例分析,介绍了如何使用 JProfiler 工具来...

    关于JAVA内存泄漏问题注意事项

    Java内存泄漏问题是一个重要的主题,尤其对于大型的J2EE应用程序而言,理解并避免内存泄漏至关重要。虽然Java的垃圾收集机制能自动管理内存,但并不意味着程序员可以完全忽视内存管理。以下是一些关于Java内存泄漏的...

    JAVA内存泄漏问题处理方法经验总结

    这篇博客“JAVA内存泄漏问题处理方法经验总结”分享了作者在处理此类问题时的一些实用技巧和经验,结合源码分析和工具使用,对于Java开发者来说是非常有价值的。 首先,了解内存泄漏的基本概念是至关重要的。内存...

    内存泄漏检测工具

    它能够帮助开发者监测Node.js应用程序的内存使用情况,找出潜在的内存泄漏问题。 6. **许可协议** 使用这些工具时,必须遵循相应的许可协议。例如,`JS Leak Detector EULA.rtf`文件很可能包含了“JS Leak ...

    内存泄露,闭包 内存泄露,闭包 内存泄露,闭包

    在JavaScript中,由于其自动垃圾回收(Garbage Collection, GC)机制,程序员通常不会直接管理内存,但不恰当的编程习惯可能导致内存泄露。例如,全局变量、循环引用和闭包都可能导致内存无法被正确回收。 闭包是...

    C# 测试内存泄露.zip

    内存泄露是程序运行时的一种常见问题,特别是在长时间运行的应用中,它可能导致系统资源耗尽,影响应用程序的稳定性和性能。C# 是一种广泛使用的编程语言,具有强大的垃圾回收(Garbage Collection, GC)机制,旨在...

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

    在了解了 GC 的工作机制后,我们可以讨论如何使用 .NET Memory Profiler 来诊断 .NET 应用中的内存泄漏问题。首先,我们需要监控托管堆使用量,找到内存只长不降的业务,这些代码有内存泄漏的危险。这个过程我们可以...

Global site tag (gtag.js) - Google Analytics