`
jiazurongyu
  • 浏览: 15989 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

内存泄露笔记

 
阅读更多

内存泄露和什么有关?

内存泄露和硬件没有关系,它是由软件设计缺陷引起的。

程序角度来看内存泄露:

内存泄露是指程序中间动态分配了内存,但是在程序结束时没有释放这部分内存,造成那一部分内存不可用的情况。

定义变量,实例化对象,new一些方法,然后通过delete的方法销毁。但是定义数量过多,而产生的遗忘。

内存泄露的危害:

内存不断在攀升,长时间下来积累了就占用了大量的内存空间,导致其他进程无法获取到内存资源,无法去处理其他应用,最后服务就shut down

检查的办法:

工具推荐:

windows性能计数器,系统自带

spotlight,开源

windowslinux平台的一些不同的做法。

Win7下:

windows下一般监控的参数是系统可用物理内存,可用虚拟内存,进程占用物理内存和进程占用虚拟内存,并且监控进程句柄数(Handle Count)和工作集(working set).

一般如果只出现虚拟内存涨或者物理内存单方面涨,不代表一定有内存泄露,也有可能是系统进行了资源位置转存,将物理内存中的数据移动到了虚拟内存中,或者反过来;如果出现在某一操作中,内存占用升高,这个操作结束后,内存恢复到原来的水平,也不会是需要检查的内存泄露点。该部分可以做为查看内存回收%指标。

工作集是一个非常重要的指标,如果发现进程working set和进程占用的物理内存都有提高,并且一直没有降下来,那么说明可能存在内存泄露。

推荐使用脚本的方式进行多次的调用,重点观察,并取得数据,一切以数据来说话
分享到:
评论

相关推荐

    Android笔记 Application对象的使用-数据传递以及内存泄漏问题

    Android笔记 Application对象的使用-数据传递以及内存泄漏问题

    android内存泄露:1、LeakCanarys内存泄漏检测库、非静态的内部类错误使用

    今天来复习一下有关内存泄露的知识,一个是把之前笔记整理一下,如有一些工具版本更新会写一些当下的使用介绍。另外会参考网上比较好的博文进行修正改进一些知识点 二、内存泄露、内存溢出、内存抖动 首先我们必须对...

    JAVA--达内培训笔记

    (4)垃圾回收机制 --- 自动垃圾收集,永远不会出现内存泄露的问题 4、虚拟机 java语言是先编译后解释,java源码是通过编译生成一种特殊的.class的中间字节码文件,然后再由JVM进行解释运行。 (编译) (解释...

    python笔记题带答案.doc

    1.Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数...(从而导致内存泄露)。为解决这一问题,解释器会定期执行一 个循环检测器,搜索不可访问对象的循环并删除它们。 三、内存池机制 Python提供了对

    java基础学习笔记 java整合技术 java工具类.rar

    简单性:相对于其他编程语言而言,java较为简单,例如:java不再支持多继承,C++是支持多继承的,多继承比较复杂,C++中有指针,java中屏蔽了指针的概念,避免了绝大部分的指针越界和内存泄露的问题,这里说明一下,...

    Android代码-Android-performance-optimization

    android性能优化整理 android性能优化整理 本人学习使用的笔记 长期更新 欢迎star QQ879689064 Handler产生的内存泄露

    .Net WInform开发笔记(五)关于事件Event

    Event很常见,Button控件的Click、KeyPress等等,PictureBox控件的Paint等等都属于本文讨论范畴,本文会例举出有关“事件编程”的几种方法,还会提及由“事件编程”引起的MemoryLeak(跟“内存泄露”差不多),以及...

    Android笔记之:App调试的几个命令的实践与分析

    其实在Android的开发之后,我们可能会碰到一些随机的问题,如cpu过高,内存泄露等,我们无法简单的进行代码调试,我们需要一个系统日志等等,下面我把握工作中碰到的几个常用命令和方法给大家演示实践一下。...

    opera 定制 中国版 珊瑚版 豪华版

    opera 超级 快速 特别在打开多页面,基本无内存泄露,比firefox 世界之窗 theworld 好几倍的浏览器 定制 中国版 珊瑚版 豪华版. 新人必看学习帖,只有这样你才能驾驭opera. opera就像熟妇,没有两下子就别碰她.所以学习...

    刷leetcode不用stl-algorithm:常规算法题记录

    递归,防止死循环和内存泄露。由于递归需要堆栈,所以内存消耗要比非递归代码要大很多。而且,如果递归深度太大,可能系统撑不住。内存会存在突然飙升的情况。如果是数据错误导致无限循环,那问题就大了。所以这方面...

    Avant Browser 2010 简体中文版build 131||发布于2011.03.16

    多进程:多进程的设计给你带来不崩溃、不死锁、没有内存泄露的网络浏览器体验和高稳定性。当一个标签死锁的时候,他不会导致你整个浏览器没响应或者其他页面死锁。 在线书签:通过Avant的在线存储可以任何地方,办...

    Avant Browser 简体中文版 2010 build 131

    多进程:多进程的设计给你带来不崩溃、不死锁、没有内存泄露的网络浏览器体验和高稳定性。当一个标签死锁的时候,他不会导致你整个浏览器没响应或者其他页面死锁。 在线书签:通过Avant的在线存储可以任何地方,办...

    c++11智能指针解析——揭开底层面纱,完整理解智能指针.pdf

    简断截说:c++的⼊门坑点⼤家都是有⽬共睹的,⽆⾮就是指针的理解不深导致⼀些野指针,内存泄露等问题,所以就不赘述。智能指针正 好能够弥补这些问题,因为它本质是存放在栈的模板对象,只是在栈内部包了⼀层指针...

    计算机应用基础第一套试卷100分.docx

    (答题答案:B) A、计算机中存储的信息正确 B、计算机中的信息不被泄露、篡改和破坏 C、计算机中的信息需经过加密 处理D、计算机中的信息没有病毒 9、 在微机中存储一个汉字需 个字节。(答题答案:C) A、4 B、3 C...

    meise_UGenius U盘加密

    你还将面临:1、企业机密泄露,自己饭碗难保;2、 苦心经营多年的客户资料被黑心同事全部盗走;3、 自己、朋友和家人的照片被发布上网,惨遭恶 搞,还引发“人肉搜索”…… C、现在许多朋友把家当成公司,公司忙不...

Global site tag (gtag.js) - Google Analytics