当前位置:  技术问答>linux和unix

程序运行内存泄漏问题

    来源: 互联网  发布时间:2016-06-10

    本文导语:  自己写的一个服务程序,负责任务的调度。 运行时察看/proc/pid/status,情况如下:          开始的时候(0个任务)    调度过若干任务后(所有任务执行完毕,还是0个任务) VmSize:  70844 KB            ...

自己写的一个服务程序,负责任务的调度。

运行时察看/proc/pid/status,情况如下:
         开始的时候(0个任务)    调度过若干任务后(所有任务执行完毕,还是0个任务)
VmSize:  70844 KB                 78320 KB
VmRSS:   15984 KB                 22000 KB
VmData:  33572 KB                 39492 KB
VmStk:   448   KB                 1912  KB
VmLib:   65304 KB                 65524 KB


是不是内存泄漏了7476KB,其中在栈上(new分配)泄漏了1474KB?
还有没有通过new分配的内存怎么会存在泄漏呢?

小弟先谢过了!

|

|
重磅介绍一款 查内泄的软件  valgrind (free software)
 
套葛优的一句话:“用过都说好”

用法:

valgrind -q --check-leak=full --log-file=dump.file ./exe

tail -f dump.file

|
恩,valgrind是很不错的内存泄漏分析工具,可以试一下。

|
为什么你觉得是内存泄漏? 
而不是call function的压栈呢?

|


* VmSize:
      虚拟内存大小。
      整个进程使用虚拟内存大小,是VmLib, VmExe, VmData, 和 VmStk的总和。

    * VmLck:
      虚拟内存锁。
      进程当前使用的并且加锁的虚拟内存总数

    * VmRSS:
      虚拟内存驻留集合大小。
      这是驻留在物理内存的一部分。它没有交换到硬盘。它包括代码,数据和栈。

    * VmData:
      虚拟内存数据。
      堆使用的虚拟内存。

    * VmStk:
      虚拟内存栈
      栈使用的虚拟内存

    * VmExe:
      可执行的虚拟内存
      可执行的和静态链接库所使用的虚拟内存

    * VmLib:
      虚拟内存库
      动态链接库所使用的虚拟内存


http://hi.baidu.com/luoluo0722/blog/item/3fdcc1b1d369ad50092302e6.html

从上面的链接来看,data才是堆,new应该是从这里分配的吧。

|
我最近使用google的tc-malloc来做内存profile效果不错。


|
内存查漏工具网上很多

    
 
 

您可能感兴趣的文章:

  • 资源泄漏检测工具valgrind如何检查不退出程序的泄漏情况
  • AIX下程序内存泄漏
  • 定时top看系统参数,发现我的程序的SIZE项和RES项的数值一直在增加,这是不是说明,我的程序有内存泄漏?
  • 现在我用c语言在linux下写一个服务端程序现发现了内存泄漏问题
  • linux中,大家的程序是如何来控制内存泄漏的?
  • 请教:在solaris下测试C++程序是否存在内存泄漏等问题用什么测试工具?
  • 请问如何检测自己的程序有没有内存泄漏?
  • Unix下C程序内存泄漏检测工具Valgrind的安装与使用详解
  • Solaris上的Corba服务端程序有内存泄漏,哪位帮看一下?
  • c/c++服务器程序内存泄露问题分析及解决
  • 请教!Linux系统C开发的程序,为什么我的程序运行时内存持续增长,程序退出后内存也没有降低?
  • C++程序的内存不同的数据段及堆栈布局
  • 程序需要共享内存相当大,但是系统的内存有限
  • 遇到奇怪的内存泄露问题,应用程序杀死内存无法释放!
  • 常驻内存程序就是后台程序吗?
  • 程序运行20分钟狂泻1G内存,当系统只剩5、6M内存时程序依然运行稳定(未使用交换分区),点解?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • CGI程序无法访问本机某个程序创建的共享内存〔求教〕
  • 在Linux上用C语言作了一个程序,程序中申请(malloc)了很大的内存,但是没free,当程序运行结束后,内存是否自动释放?
  • 请问能否在linux实现一个应用程序访问另外一个程序的内存数据?
  • arm程序内存占用问题
  • 请教多线程程序的内存占用问题
  • 程序占用很大的内存
  • 请教,在linux下如何判断程序的内存泄露?
  • 在驱动程序里,用数组,或malloc是申请到虚拟内存吧?
  • 请问在SOLARIS上怎么实时查看程序的内存使用状况??
  • 驱动程序中关于内存的读写问题
  • 求助!怎样实现一个程序长期固定的在一块物理内存
  • 程序在不同的平台占用内存不一样
  • 急急急,请问如何检查C程序中内存泄露问题?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • SecureCRT上运行一个JAVA程序,该程序类似一个在WINDOWS下一直运行的CMD窗口的东西,SecureCRT关掉后,JAVA还会继续运行吗?
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • telnet到主机去运行一个我编的程序,退出telnet时那个程序也不运行了,这是怎么回事?按程序逻辑它应该一直运行下去的。
  • windows下cmd命令提示符下让程序后台运行命令
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??
  • 我的linux程序 如何 在pc机器上运行。现在我用arm-linux-g++ 编译后的程序在我的嵌入设备上运行。
  • 在JB7中默认的情况下会为程序生成一个包,程序在JB7中可以正常运行,可是在JDK中却无法运行
  • 我用C在UNIX下写程序,生产文本,如何能让我的程序并行运行,好加快运行速度,举例说明。
  • 怎样在客户端(win2k svr)vc程序里使hp-ux服务器中的c程序运行,另外如何获得其运行结果?
  • 在LIUNIX中,在运行程序中,运行什么命令可以出现类似DOS的界面...谢谢.
  • 怎样让linux启动后不运行桌面而是直接运行某个应用程序呢?
  • 程序在windows下用visual运行正常,如何才能在linux下运行??
  • linux编写一个脚本判断程序是否在运行,如果没运行就重启这个软件。
  • 请问linux下查看某个程序的运行界面的程序是什么?
  • jbuilder下写的javabean与jsp程序正常运行,如何转到weblogic或其他的服务器上运行???
  • 运行程序后程序报错说操作不允许
  • ubuntu下用gcc编译的程序要怎样运行,为何运行不了?
  • 关闭putty(SSH程序)后如何让程序还在redhat上运行?
  • 怎么让一个程序在后台运行而不影响其他的程序的执行?
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3