`

电脑内存泄漏是怎么回事

阅读更多
cpu资源耗尽:估计是机器没有反应了,键盘,鼠标,以及网络等等。这个在windows上经常看见,特别是中了毒。
  进程id耗尽:没法创建新的进程了,串口或者telnet都没法创建了。
  硬盘耗尽: 机器要死了,交换内存没法用,日志也没法用了,死是很正常的。
  内存泄漏或者内存耗尽:新的连接无法创建,free的内存比较少。发生内存泄漏的程序很多,但是要想产生一定的后果,就需要这个进程是无限循环的,是个服务进程。当然,内核也是无限循环的,所以,如果内核发生了内存泄漏,情况就更加不妙。内存泄漏是一种很难定位和跟踪的错误,目前还没看到有什么好用的工具(当然,用户空间有一些工具,有静态分析的,也会动态分析的,但是找内核的内存泄漏,没有好的开源工具)
  内存泄漏和对象的引用计数有很大的关系,再加上c/c++都没有自动的垃圾回收机制,如果没有手动释放内存,问题就会出现。如果要避免这个问题,还是要从代码上入手,良好的编码习惯和规范,是避免错误的不二法门。
  一般我们常说的内存泄漏是指堆内存的泄漏。
  堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。
  应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。
  (附)部分内存泄漏检测工具
  1.ccmalloc-Linux和Solaris下对C和C++程序的简单的使用内存泄漏和malloc调试库。
  2.Dmalloc-Debug Malloc Library.
  3.Electric Fence-Linux分发版中由Bruce Perens编写的malloc()调试库。
  4.Leaky-Linux下检测内存泄漏的程序。
  5.LeakTracer-Linux、Solaris和HP-UX下跟踪和分析C++程序中的内存泄漏。
  6.MEMWATCH-由Johan Lindh编写,是一个开放源代码C语言内存错误检测工具,主要是通过gcc的precessor来进行。
  7.Valgrind-Debugging and profiling Linux programs, aiming at programs written in C and C++.
  8.KCachegrind-A visualization tool for the profiling data generated by Cachegrind and Calltree.
  9.IBM Rational PurifyPlus-帮助开发人员查明C/C++、托管.NET、Java和VB6代码中的性能和可靠性错误。PurifyPlus 将内存错误和泄漏检测、应用程序性能描述、代码覆盖分析等功能组合在一个单一、完整的工具包中。
  10.Parasoft Insure++-针对C/C++应用的运行时错误自动检测工具,它能够自动监测C/C++程序,发现其中存在着的内存破坏、内存泄漏、指针错误和I/O等错误。并通过使用一系列独特的技术(SCI技术和变异测试等),彻底的检查和测试我们的代码,精确定位错误的准确位置并给出详细的诊断信息。能作为Microsoft Visual C++的一个插件运行。
  11.Compuware DevPartner for Visual C++ BoundsChecker Suite-为C++开发者设计的运行错误检测和调试工具软件。作为Microsoft Visual Studio和C++ 6.0的一个插件运行。
  12.Electric Software GlowCode-包括内存泄漏检查,code profiler,函数调用跟踪等功能。给C++和.Net开发者提供完整的错误诊断,和运行时性能分析工具包。
  13.Compuware DevPartner Java Edition-包含Java内存检测,代码覆盖率测试,代码性能测试,线程死锁,分布式应用等几大功能模块。
  14.Quest JProbe-分析Java的内存泄漏。
  15.ej-technologies JProfiler-一个全功能的Java剖析工具,专用于分析J2SE和J2EE应用程序。它把CPU、执行绪和内存的剖析组合在一个强大的应用中。
  16.BEA JRockit-用来诊断Java内存泄漏并指出根本原因,专门针对Intel平台并得到优化,能在Intel硬件上获得最高的性能。
分享到:
评论

相关推荐

    内存泄漏修复 挽救电脑崩溃

    内存泄漏修复 挽救电脑崩溃

    释放内存让你的电脑飞起来

    释放内存,让你的电脑飞起来,我都试过 很厉害的一款软件,

    poolmon内存泄露分析windows工具下载.txt

    Poolmon是一款windows平台下的核心内存泄漏检测工具,核心内存是windows分配给系统内核或驱动所需的内存空间,核心分页池内存或未分页池内存如果增长表明你的电脑存在核心内存泄漏,如果达到了windows所分配的最大值,...

    内存清理工具.rar

    内存清理工具是一款清理电脑内存垃圾的软件,能够自动智能清理并释放内存,让你的电脑时时刻刻运行流畅,有需要的朋友快下载使用吧。 内存清理工具介绍: 内存清理工具是一款好用的内存自动释放优化工具!电脑运行...

    C/C++ 内存泄露检测工具 memwatch2.69

    C/C++ 内存泄露检测工具 memwatch,下载

    Avant browser 2011 build 27||占用内存最小的浏览器~

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

    计算机内存管理工具 RAM Saver Professional 20.3 中文多语免费版.zip

    RAM Saver Pro 通过为您的应用程序提供更多内存来提高操作系统性能。 使用这些优化技巧将帮助您喜爱的应用程序和游戏更快,更高效地...– 从不良行为的应用程序中恢复内存泄漏; – 将未使用的库临时刷新到磁盘等等。

    U盘防拷精灵1.3 内存注册机.

    软件简介:计算机USB接口是计算机内部网络信息泄漏发生的一个重要途径,随着科技的迅速发展,目前可以很轻松地通过USB端口设备如:U盘、移动硬盘 、移动刻录机以及其它USB接口的存储设备将计算机本机或者网络内部的...

    电脑扩音器 V1.0

    电脑扩音器 ,让你的电脑成为免费音响...2.无内存泄漏; 3.支持Windows xp/windows 2000/windows 2003/windows vista/windows 2008; 4.支持gsm6.1 g723.1语音压缩算法; 5.使用简单,兼容性好 注册码:lacirtcele

    JVM原理与调优实战下载即用

    但是也要根据自己电脑(服务器)的实际内存来比较。 最好使用并行收集器,因为并行收集器速度比串行吞吐量高,速度快。 当然,服务器一定要是多线程的 设置堆内存新生代的比例和老年代的比例最好为1:2或者1:3。 默认的...

    冰月无忧.录屏 2.0.0.19 bywyLuping2.exe

    (内存泄露^_^) 2.0.0.18 悬浮窗+托盘操作。 mp4和avi采用h264编码,多线程根据CPU线程数适当-1或-2。如果自信自己的电脑可手动设置。 gif内存操作貌似出了点问题,又改回文件操作了...老牛拉车。 总体来说自己觉得...

    Qt for Android 正记时软件极简版

    代码比较冗余同时可能存在内存泄漏,仅供参考 另外附带了简易记事本功能(是为了验证QtforAndroid是否和电脑端保存文件的方式是否支持,得到的结论是使用电脑端形如:"D:\\A\a.txt"的存储方式,但是在手机端没有找到...

    Java虚拟机(JVM)面试题(总结最全面的面试题!!!)

    Java虚拟机(JVM)面试题(总结最全面的面试题!!!) 文章目录Java内存模型我们开发人员编写的Java代码是怎么让电脑认识的为什么说java是跨平台语言Jdk和Jre和JVM的...深拷贝和浅拷贝Java会存在内存泄漏吗?请说 收

    android开发介及心得.docx

    android开发介及心得....这对于正确管理资源和避免内存泄漏非常重要。 适配不同屏幕尺寸: 设计可适应各种屏幕尺寸的用户界面是必要的。使用不同的布局和资源文件,以确保应用在各种设备上都能良好运行。 性能优化:

    Directx3D9 : 半成品自制渲染引擎

    工具函数使用堆但会导致内存泄漏(可以解决); 没有太多注释、没有文档; 或许可以将RenderEr类改为场景类,在CWindow类下动态更改渲染的场景(添加类似“组”的类); 或许应该禁止直接从CWindow中直接获取设备...

    恶作剧的好程序

    可以让你恶作剧的对象的电脑产生内存泄漏 从而快速死机

    大势至电脑文件防泄密系统、企业数据防泄漏系统V10.1正式发布 严防泄漏商业机密

    大势至电脑文件防泄密系统是一款专门保护企事业单位电脑文件、无形资产的电脑安全软件,V10.1正式版发布,一起来看看更新内容吧

    qqkav

    使用这一功能可以清除以上所有有关用户操作电脑的历史痕迹,保护您的隐私不被泄漏。  3.注册表修复:一键修复EXE、COM、BAT、TXT等多项系统文件关联、修复系统不能显示隐藏文件、解除病毒对注册表编辑器及任务...

    EurekaLog 7.7.8.64(源码版)~著名且不可多得的Delphi 完整的Bug决议工具

    能让所编写的应用程序有能力捕获任何异常和内存泄露,直接在最终用户的电脑上,生成调用堆栈的详细日志(包括file, class, method and line number),可以设置通过Email或者WEB发送每个日志的副本。据官方的...

    EurekaLog 7.7.8.21(源码版)~著名且不可多得的Delphi 完整的Bug决议工具

    能让所编写的应用程序有能力捕获任何异常和内存泄露,直接在最终用户的电脑上,生成调用堆栈的详细日志(包括file, class, method and line number),可以设置通过Email或者WEB发送每个日志的副本。据官方的...

Global site tag (gtag.js) - Google Analytics