而且任务管理器右下角的“提交更改:X/Y”中,X的值随着进程占用内存数的上升也直线上升。
我的程序是关于视频处理的。如果我使用的测试视频长度的稍长一点,程序就会崩溃(好像是因为内存不够用)。
这是内存泄漏的表现吗?
我用了内在泄漏工具查了查,没发现有泄漏的情况存在啊。
这是为什么?麻烦高人指点。谢谢!
8 个解决方案
#1
简单的看一下,运行程序,然后打开任务管理器,查看程序所占的内存以及虚拟内存是否随着时间的增加一直递增,不断增多,是的话,那么就有内存泄漏
检查new等分配的内存是否释放,既然是视频处理还有可能是GDI句柄泄漏等,可以把任务管理器中增加GDI handle的列,查看是不是这个数也不断增加,每个进程,系统分配了不超过1w个GDI handle,超过了,程序就会崩溃..
检查new等分配的内存是否释放,既然是视频处理还有可能是GDI句柄泄漏等,可以把任务管理器中增加GDI handle的列,查看是不是这个数也不断增加,每个进程,系统分配了不超过1w个GDI handle,超过了,程序就会崩溃..
#2
从情况看是内存泄漏。用AQTime工具来检查。可以很快的定位是哪行有内存泄漏。
#3
up \
#4
#5
楼主的视频是否不停的打开然后关闭呢这样重复操作
#6
从情况看应该就是内存泄露...
估计是程序里动态申请资源后,没有释放掉..
估计是程序里动态申请资源后,没有释放掉..
#7
To oyljerry:我处理视频用的是OpenCV库,没有用那些句柄。对于是否是OpenCV库泄漏内存,我已经用它自带的内存管理函数检查过了,没有泄漏。
To coldant : 我没有一直打开关闭视频,只打开一次,一直处理,直到结束。
To wugaofeng555 :AQTime好用吗?我试着用BoundsCheck检查,结果这东西一直用不好,不知道怎么用。
TO 大家:从程序表面来看,手动开辟的内存都有手动释放。我的程序是还用到了另外一个开源库,不知道是不是它有泄漏?请大家再帮我想想,谢谢!
To coldant : 我没有一直打开关闭视频,只打开一次,一直处理,直到结束。
To wugaofeng555 :AQTime好用吗?我试着用BoundsCheck检查,结果这东西一直用不好,不知道怎么用。
TO 大家:从程序表面来看,手动开辟的内存都有手动释放。我的程序是还用到了另外一个开源库,不知道是不是它有泄漏?请大家再帮我想想,谢谢!
#8
shi de
#1
简单的看一下,运行程序,然后打开任务管理器,查看程序所占的内存以及虚拟内存是否随着时间的增加一直递增,不断增多,是的话,那么就有内存泄漏
检查new等分配的内存是否释放,既然是视频处理还有可能是GDI句柄泄漏等,可以把任务管理器中增加GDI handle的列,查看是不是这个数也不断增加,每个进程,系统分配了不超过1w个GDI handle,超过了,程序就会崩溃..
检查new等分配的内存是否释放,既然是视频处理还有可能是GDI句柄泄漏等,可以把任务管理器中增加GDI handle的列,查看是不是这个数也不断增加,每个进程,系统分配了不超过1w个GDI handle,超过了,程序就会崩溃..
#2
从情况看是内存泄漏。用AQTime工具来检查。可以很快的定位是哪行有内存泄漏。
#3
up \
#4
#5
楼主的视频是否不停的打开然后关闭呢这样重复操作
#6
从情况看应该就是内存泄露...
估计是程序里动态申请资源后,没有释放掉..
估计是程序里动态申请资源后,没有释放掉..
#7
To oyljerry:我处理视频用的是OpenCV库,没有用那些句柄。对于是否是OpenCV库泄漏内存,我已经用它自带的内存管理函数检查过了,没有泄漏。
To coldant : 我没有一直打开关闭视频,只打开一次,一直处理,直到结束。
To wugaofeng555 :AQTime好用吗?我试着用BoundsCheck检查,结果这东西一直用不好,不知道怎么用。
TO 大家:从程序表面来看,手动开辟的内存都有手动释放。我的程序是还用到了另外一个开源库,不知道是不是它有泄漏?请大家再帮我想想,谢谢!
To coldant : 我没有一直打开关闭视频,只打开一次,一直处理,直到结束。
To wugaofeng555 :AQTime好用吗?我试着用BoundsCheck检查,结果这东西一直用不好,不知道怎么用。
TO 大家:从程序表面来看,手动开辟的内存都有手动释放。我的程序是还用到了另外一个开源库,不知道是不是它有泄漏?请大家再帮我想想,谢谢!
#8
shi de