CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

为什么我的程序运行以后内存使用量不停的增长?

楼主gloriajie()2004-09-04 12:46:11 在 VC/MFC / 基础类 提问

在windows的任务管理器里看到,我的程序使用的内存不断增加.  
  程序里没有用new   ,malloc等等,都是最简单的定义方法     char   buf[10000]之类的  
  有一个函数里定义并建立新的套接字,并设置socket的发送缓冲区和接收缓冲区为10000,收发数据结束后,该函数将套接字close  
  这个函数每隔两秒被调用一次.  
  这个会影响内存使用吗?????  
   
  请各位指教!! 问题点数:20、回复次数:24Top

1 楼opentuxedo(借哥哥的号来试试)回复于 2004-09-04 12:54:41 得分 1

释放句柄!Top

2 楼gloriajie()回复于 2004-09-04 13:00:06 得分 0

不好意思能说的再详细一点吗?Top

3 楼eastsun()回复于 2004-09-04 13:11:48 得分 2

 
   
  内存泄漏了。  
  Top

4 楼bobob(静思)回复于 2004-09-04 13:15:00 得分 1

把句柄也释放了  
  有的堆内存申请是隐含的Top

5 楼runall(龙行天下)回复于 2004-09-04 13:31:13 得分 1

CloseHandle();Top

6 楼eleek(宿迁人自己的社区(www.sqren.cn))回复于 2004-09-04 13:40:01 得分 2

该释放的系统资源要记得释放,既然是Socket编程,查查有关资料。Top

7 楼gloriajie()回复于 2004-09-04 14:07:28 得分 0

是不是可以用BoundsChecker查一下?Top

8 楼sdwalnut1(豆浆加油条)回复于 2004-09-04 15:53:34 得分 2

你定义的char   buf[10000],也是要占用内存的,只不过是超出作用范围后,自己销毁。你把程序的结构整理以下,分配的内存,使用后就销毁,不然程序不推出,就一直占用内存的。Top

9 楼sjd163(sjd163)回复于 2004-09-04 16:21:49 得分 3

你的水管漏了。看看有什么要关闭的。Top

10 楼gloriajie()回复于 2004-09-04 17:44:48 得分 0

我在函数里定义的变量,函数调用结束,虽然程序没有结束,这些内存也应该收回了吧?  
  我用char   buf[1000],这种方式定义的东东,不需要什么特别的语句另外收回内存把?Top

11 楼lifeequation(果皮)回复于 2004-09-04 18:04:30 得分 2

内存泄漏吧,估计是否则不会增长Top

12 楼gloriajie()回复于 2004-09-04 18:28:11 得分 0

我用了BoundsChecke来build,然后用f5运行,结果出来如下,好像没有我得程序的问题呀?  
  Loaded   'D:\WINNT\system32\ntdll.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\KERNEL32.DLL',   no   matching   symbolic   information   found.  
  Loaded   symbols   for   'D:\WINNT\system32\MFC42D.DLL'  
  Loaded   symbols   for   'D:\WINNT\system32\MSVCRTD.DLL'  
  Loaded   'D:\WINNT\system32\GDI32.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\USER32.DLL',   no   matching   symbolic   information   found.  
  Loaded   symbols   for   'D:\WINNT\system32\MFCO42D.DLL'  
  Loaded   'D:\WINNT\system32\OLE32.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\rpcrt4.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\ADVAPI32.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\OLEAUT32.DLL',   no   matching   symbolic   information   found.  
  Loaded   symbols   for   'D:\WINNT\system32\MFCN42D.DLL'  
  Loaded   'D:\WINNT\system32\wsock32.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\ws2_32.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\msvcrt.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\ws2help.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\Program   Files\rising\rav\ApiHook.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\Program   Files\rising\rav\Memmon.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\imm32.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\lpk.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\usp10.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\mfc42loc.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\indicdll.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\Downloaded   Program   Files\BDPlugin.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\version.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\lz32.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\comctl32.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\clbcatq.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\Program   Files\Common   Files\System\ado\msado15.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\msdart.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\COMDLG32.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\SHLWAPI.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\SHELL32.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\Program   Files\Common   Files\System\Ole   DB\oledb32.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\Program   Files\Common   Files\System\Ole   DB\oledb32r.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\Program   Files\Common   Files\System\Ole   DB\sqloledb.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\Program   Files\Common   Files\System\Ole   DB\msdatl3.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\NETAPI32.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\secur32.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\netrap.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\samlib.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\WLDAP32.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\dnsapi.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\mswstr10.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\mswdat10.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\comsvcs.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\txfaux.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\msdtcprx.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\mtxclu.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\CLUSAPI.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\RESUTILS.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\USERENV.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\dbnetlib.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\security.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\MSV1_0.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\CRYPT32.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\msasn1.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\ntdsapi.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\dcsws2.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\winmm.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\mmdrv.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\psapi.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\msafd.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\wshtcpip.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\RNR20.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\IPHLPAPI.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\icmp.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\mprapi.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\activeds.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\adsldpc.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\rtutils.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\SETUPAPI.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\RASAPI32.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\RASMAN.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\tapi32.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\DHCPCSVC.DLL',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\winrnr.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\WINNT\system32\rasadhlp.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\Program   Files\rising\rav\ravproxy.dll',   no   matching   symbolic   information   found.  
  Loaded   'D:\Program   Files\Common   Files\System\ado\msadrh15.dll',   no   matching   symbolic   information   found.  
  The   thread   0x270   has   exited   with   code   1   (0x1).  
  The   thread   0x578   has   exited   with   code   1   (0x1).  
  The   thread   0xA34   has   exited   with   code   1   (0x1).  
  The   thread   0x52C   has   exited   with   code   1   (0x1).  
  The   thread   0x9B4   has   exited   with   code   1   (0x1).  
  The   thread   0x998   has   exited   with   code   1   (0x1).  
  The   thread   0x210   has   exited   with   code   1   (0x1).  
  The   thread   0x6D4   has   exited   with   code   1   (0x1).  
  Loaded   'D:\WINNT\system32\psapi.dll',   no   matching   symbolic   information   found.  
   
   
  Detected   memory   leaks!  
  Dumping   objects   ->  
  strcore.cpp(118)   :   {111}   normal   block   at   0x00442B10,   26   bytes   long.  
    Data:   <                         202.>   01   00   00   00   0D   00   00   00   0D   00   00   00   32   30   32   2E    
  oleinit.cpp(86)   :   {60}   client   block   at   0x00441710,   subtype   0,   68   bytes   long.  
  a   CCmdTarget   object   at   $00441710,   68   bytes   long  
  Object   dump   complete.  
  The   thread   0x268   has   exited   with   code   1   (0x1).  
  The   program   'E:\丙烯晴项目\socket\BoundsChecke   收时间,优化(变量)   日志,sql登录,管理员,新数据库方法,系统端口\Debug\zsja.exe'   has   exited   with   code   1   (0x1).  
   
   
  这个strcore.cpp不是我写的程序呀Top

13 楼gloriajie()回复于 2004-09-04 18:29:51 得分 0

这一堆都是什么呀?哪位熟悉的能说说吗Top

14 楼crystal521(【云淡风轻】)回复于 2004-09-04 20:11:21 得分 2

socket是不Top

15 楼crystal521(【云淡风轻】)回复于 2004-09-04 20:12:42 得分 0

不好意思,快捷键按错了  
   
  你的socket是不是没有关闭Top

16 楼gloriajie()回复于 2004-09-04 20:42:43 得分 0

socket.close过了Top

17 楼gloriajie()回复于 2004-09-06 11:28:34 得分 0

经过长时间的测试(8,9小时),发现有的时候内存使用量会突然减小很多(3,4M),我的程序就是末端代码不断循环,没有别的操作,为什么会这样呢?  
   
  Top

18 楼superhandsome(帅得要崩溃)回复于 2004-09-06 11:52:39 得分 1

是不是有死循环Top

19 楼gloriajie()回复于 2004-09-07 21:59:59 得分 0

有ontimer  
  里面调用了一些函数,并且定义了一些变量Top

20 楼eastsun()回复于 2004-09-08 13:43:03 得分 2

Detected   memory   leaks!  
  Dumping   objects   ->  
  strcore.cpp(118)   :   {111}   normal   block   at   0x00442B10,   26   bytes   long.  
    Data:   <                         202.>   01   00   00   00   0D   00   00   00   0D   00   00   00   32   30   32   2E    
  oleinit.cpp(86)   :   {60}   client   block   at   0x00441710,   subtype   0,   68   bytes   long.  
  a   CCmdTarget   object   at   $00441710,   68   bytes   long  
  Object   dump   complete.  
   
  这些就是内存泄漏啊。  
  Top

21 楼eastsun()回复于 2004-09-08 13:52:53 得分 0

 
   
  要记得调用CString::Release   or   Empty.  
  要记得调用AfxOleTerm.  
   
  一般程序中泄漏这26+68个字节也没有什么,也许你是反复循环调用,所以泄漏很多。Top

22 楼gloriajie()回复于 2004-09-10 22:30:48 得分 0

问题是strcore.cpp是什么东东呀?不是我得项目里的文件呢?那里来得?Top

23 楼111222(www.111222.cn)回复于 2004-09-11 01:40:02 得分 1

先生成MAP文件:    
  C/C++   Options里面加上   /Zd    
  Link   Options:   /mapinfo:   exports   /mapinfo:   lines,     别忘了把generate   mapfile选上.  
   
  然后用  
  0x00442B10   -   0x00400000   -   0x1000得到一个值,     再到map文件里面去找最接近的函数.  
   
  定位到函数以后,   再根据lines信息定位到行.   这样就应该可以定位到内存泄漏的地方了吧.Top

24 楼gloriajie()回复于 2004-09-11 10:55:13 得分 0

我得程序开启以后,我在OnInitDialog里直接写exit(0);什么都不做就跳出程序,他都会说strcore.cpp(118)   :   {67}   normal   block   at   0x02491310,   49   bytes   long.  
    Data:   <                                 >   01   00   00   00   04   00   00   00   20   00   00   00   CB   CE   CC   E5    
  {66}   normal   block   at   0x02491370,   60   bytes   long.  
    Data:   <                                 >   FF   FF   FF   FF   FB   FB   FB   FB   FB   FB   FB   FB   FB   FB   FB   FB    
  oleinit.cpp(86)   :   {64}   client   block   at   0x02491460,   subtype   0,   72   bytes   long.  
  a   CCmdTarget   object   at   $02491460,   72   bytes   long  
  Object   dump   complete.  
  The   thread   0x790   has   exited   with   code   0   (0x0).  
  怎么回事呀?  
   
    111222大哥我用的vc里哪有你说的那些东东啊Top

相关问题

  • 求救:怎样得到当前正在运行程序的内存使用量?
  • 如何获取到该应用程序的内存使用量(vb.net)?
  • vc调试中如何监视一个程序的内存使用量,有没有内存泄漏。
  • 程序运行内存错误问题!
  • 程序运行所需内存
  • 进程的虚拟内存使用量与其内存使用量是什么关系?
  • [求助]返回内存的使用量的方法
  • 如何监测某个进程的内存使用量
  • 我想限制程序占用CPU使用量.
  • 程序运行中内存不足问题,急!

关键词

  • 内存
  • 函数
  • 文件
  • cpp
  • dll
  • 程序
  • fb fb fb fb fb
  • 调用
  • winnt
  • matching symbol

得分解答快速导航

  • 帖主:gloriajie
  • opentuxedo
  • eastsun
  • bobob
  • runall
  • eleek
  • sdwalnut1
  • sjd163
  • lifeequation
  • crystal521
  • superhandsome
  • eastsun
  • 111222

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo