社区
硬件/系统
帖子详情
程序运行时,内存占用会越来越多,可是程序退出后,并没有发现内存泄漏,
zcy_beijing
2005-10-10 04:58:20
不知道有什么好的调试工具知道是哪个动态库新分配了内存?因为我的程序中使用的动态库较多,大概有10几个,现在不知道是什么原因造成的,查看代码也没有发现没有释放内存的地方,请大家分析一下原因,给出定位问题的办法,谢谢!
...全文
562
11
打赏
收藏
程序运行时,内存占用会越来越多,可是程序退出后,并没有发现内存泄漏,
不知道有什么好的调试工具知道是哪个动态库新分配了内存?因为我的程序中使用的动态库较多,大概有10几个,现在不知道是什么原因造成的,查看代码也没有发现没有释放内存的地方,请大家分析一下原因,给出定位问题的办法,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
koko1998
2005-10-26
打赏
举报
回复
也有可能你是用了CArray来存贮大量的数据。是的话,可能出出现大连内存耗用的情况
CArray内存的分配是动态的,刚开始的时候比较小,如果数据多了,他就会继续分配内存,如果没有如果的空间去分配该数据的话。他将时候内存copy,在另一个所谓足够的空间中从新分配,以此类推 无用的空间由system来释放。
不过,我想如果是这样的话,也不该出现死机的现象。windows的管理还是很可靠的呀。
在仔细看看吧
jason176374
2005-10-26
打赏
举报
回复
MSI.dll,CSCUI.dll用工具看里面的导出函数啊.
然后看DLL的相互调用层次,就知道是什么时间调用的了.
有可能是你调用的DLL再去调用的.
zcy_beijing
2005-10-24
打赏
举报
回复
除了使用的openssl的库外,其他的dll都是自己写的。我仔细检查过所有分配内存的地方,确定都释放了,也就是有new的地方肯定有相应的delete,有malloc的地方有free,但是还是遇到这个问题。另外程序中用了ADO访问Access数据库,我是使用一个Connection,后面要访问数据时用_RecordsetPtr ,先open后close,再release了,应该也没有问题啊。
ncucf
2005-10-24
打赏
举报
回复
不过数据库访问,是会内存占用越来越多的,好像ado自己会维护一个内存池,我们根本无法回收那些资源,就是说,如果你不断的添加记录,就会不断的增加内存占有,除非你完全释放ado连接,再重新连接ado!
即使new之后都有delete,还是可能存在泄漏啊,有时候看是不是用错了return语句,比如没释放就返回,或者发生了意外,强制退出函数了,注意用try{}catch{}捕捉!
大菠菜
2005-10-23
打赏
举报
回复
楼上说的对!
ncucf
2005-10-22
打赏
举报
回复
程序退出后,当然不会有内存泄漏了,系统能够保证进程退出,回收所有的资源!
不要过多怀疑dll有泄漏(如果不是你自己做的dll话!),多看看自己的代码,比如专门找malloc和new关键字,大概问题都出在自己的不小心上!
zcy_beijing
2005-10-11
打赏
举报
回复
我调试时,通过BoundsChecker查看使用内存情况,一边用任务管理器看,调试时发现,使用任务管理器查看应用使用的内存变大了,可是BoundsChecker没有发现新的内存使用,不知道为什么?
ufox
2005-10-10
打赏
举报
回复
既然使用了BoundsCheck,那你可以知道内存泄漏的代码调用堆栈啊,这样就能够找到你的代码分配内存的地方的
zcy_beijing
2005-10-10
打赏
举报
回复
我用BoundsCheck调试了一下,发现新占用的内存都是MSI.dll,CSCUI.dll占用的,可是我的程序中并没有调用这两个库,如何释放它们占用的内存呢?
zcy_beijing
2005-10-10
打赏
举报
回复
跑久了,占用系统内存越来越多,最后系统就崩了。
DentistryDoctor
2005-10-10
打赏
举报
回复
内存占用会越来越多?跑个较长的时间试试呢,比如一天?
粗略分析Python中的
内存
泄漏
之前一直盲目的认为 Python 不
会
存在
内存
泄露, 但是眼看着上线的项目随着
运行时
间的增长 而
越来越
大的
内存
占用
, 我意识到我写的
程序
在发生
内存
泄露, 之前 debug 过 logging 模块导致的
内存
泄露. 目前看来, 还有别的...
linux运行python
程序
占用
内存
越来越
大_在Linux上用C语言作了一个
程序
,
程序
中申请(malloc)了很大的
内存
,但是没free,当
程序
运行结束后,
内存
是否自动释放?...
在Linux上用C语言作了一个
程序
,
程序
中申请(malloc)了很大的
内存
,但是没free,当
程序
运行结束后,
内存
是否自动释放?也可一这样说,当一个进程结束了,是否他的所有的
内存
资源都
会
自动释放呢?main(){char*tmpstr=malloc...
C++第3课:C++
内存
泄露检测原理及案例实战
本课程具体的内容主要包括C++
内存
泄露案例、VS2015
内存
泄露检测、野指针、VirtualAlloc/HeapAlloc/malloc/new的区别、C++堆和栈的
内存
管理、栈简介、堆简介、堆与栈区别、栈的
内存
分配、Windows的虚拟
内存
技术、...
内存
泄漏
和
内存
增长
内存
增长的现象是
运行时
内存
占用
越来越
大,这种现象有可能是有意设计的。
内存
泄漏
是指分配的
内存
没有
释放,导致
内存
不能归还操作系统。现代的操作系统一般都能在进程结束后回收所有
内存
。如果是
没有
这种
内存
回收机制...
C++
内存
泄露
少部分的
内存
泄漏
不
会
影响
程序
的正常运行,不过如果是持续的
内存
泄漏
会
耗光系统
内存
,最终
会
导致
程序
卡死甚至系统崩溃。为了避免系统崩溃,在无法申请到
内存
的时候,要果断调用exit()函数主动杀死进程,而不是试图...
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章