这咱情况是内存泄漏吗?

时间:2023-02-11 20:57:24
调试程序时发现,任务管理器中显示该程序的进程所占用的内存直线上升,
而且任务管理器右下角的“提交更改:X/Y”中,X的值随着进程占用内存数的上升也直线上升。
我的程序是关于视频处理的。如果我使用的测试视频长度的稍长一点,程序就会崩溃(好像是因为内存不够用)。

这是内存泄漏的表现吗?

我用了内在泄漏工具查了查,没发现有泄漏的情况存在啊。

这是为什么?麻烦高人指点。谢谢!

8 个解决方案

#1


简单的看一下,运行程序,然后打开任务管理器,查看程序所占的内存以及虚拟内存是否随着时间的增加一直递增,不断增多,是的话,那么就有内存泄漏

检查new等分配的内存是否释放,既然是视频处理还有可能是GDI句柄泄漏等,可以把任务管理器中增加GDI handle的列,查看是不是这个数也不断增加,每个进程,系统分配了不超过1w个GDI handle,超过了,程序就会崩溃..

#2


从情况看是内存泄漏。用AQTime工具来检查。可以很快的定位是哪行有内存泄漏。

#3


up \

#4


引用 1 楼 oyljerry 的回复:
简单的看一下,运行程序,然后打开任务管理器,查看程序所占的内存以及虚拟内存是否随着时间的增加一直递增,不断增多,是的话,那么就有内存泄漏 

检查new等分配的内存是否释放,既然是视频处理还有可能是GDI句柄泄漏等,可以把任务管理器中增加GDI handle的列,查看是不是这个数也不断增加,每个进程,系统分配了不超过1w个GDI handle,超过了,程序就会崩溃..
这咱情况是内存泄漏吗?

#5


楼主的视频是否不停的打开然后关闭呢这样重复操作

#6


从情况看应该就是内存泄露...
估计是程序里动态申请资源后,没有释放掉..

#7


To  oyljerry:我处理视频用的是OpenCV库,没有用那些句柄。对于是否是OpenCV库泄漏内存,我已经用它自带的内存管理函数检查过了,没有泄漏。

To coldant : 我没有一直打开关闭视频,只打开一次,一直处理,直到结束。

To wugaofeng555 :AQTime好用吗?我试着用BoundsCheck检查,结果这东西一直用不好,不知道怎么用。

TO 大家:从程序表面来看,手动开辟的内存都有手动释放。我的程序是还用到了另外一个开源库,不知道是不是它有泄漏?请大家再帮我想想,谢谢!

#8


shi de 

#1


简单的看一下,运行程序,然后打开任务管理器,查看程序所占的内存以及虚拟内存是否随着时间的增加一直递增,不断增多,是的话,那么就有内存泄漏

检查new等分配的内存是否释放,既然是视频处理还有可能是GDI句柄泄漏等,可以把任务管理器中增加GDI handle的列,查看是不是这个数也不断增加,每个进程,系统分配了不超过1w个GDI handle,超过了,程序就会崩溃..

#2


从情况看是内存泄漏。用AQTime工具来检查。可以很快的定位是哪行有内存泄漏。

#3


up \

#4


引用 1 楼 oyljerry 的回复:
简单的看一下,运行程序,然后打开任务管理器,查看程序所占的内存以及虚拟内存是否随着时间的增加一直递增,不断增多,是的话,那么就有内存泄漏 

检查new等分配的内存是否释放,既然是视频处理还有可能是GDI句柄泄漏等,可以把任务管理器中增加GDI handle的列,查看是不是这个数也不断增加,每个进程,系统分配了不超过1w个GDI handle,超过了,程序就会崩溃..
这咱情况是内存泄漏吗?

#5


楼主的视频是否不停的打开然后关闭呢这样重复操作

#6


从情况看应该就是内存泄露...
估计是程序里动态申请资源后,没有释放掉..

#7


To  oyljerry:我处理视频用的是OpenCV库,没有用那些句柄。对于是否是OpenCV库泄漏内存,我已经用它自带的内存管理函数检查过了,没有泄漏。

To coldant : 我没有一直打开关闭视频,只打开一次,一直处理,直到结束。

To wugaofeng555 :AQTime好用吗?我试着用BoundsCheck检查,结果这东西一直用不好,不知道怎么用。

TO 大家:从程序表面来看,手动开辟的内存都有手动释放。我的程序是还用到了另外一个开源库,不知道是不是它有泄漏?请大家再帮我想想,谢谢!

#8


shi de