VS2010如何查哪儿占得内存大
VS2010怎么查哪儿占得内存大
我现在编了一个程序,简单来说实现的就是把一个文件分段,对每段进行编码,发送给解码器,解码器解码,再恢复成文件。
可随着文件的增大,解码器解码占得内存越来越大,传400M的视频文件我电脑的内存都不够用了。可我每解出一个分段就释放这个分段的内存,我仔细检查了每个new之后都有对应的delete,而且凡是写了的delete调试过程中都能看到确实是释放成功了。
我不明白为什么还会占那么多内存(用任务管理器看的),所以也不知道改哪儿,怎么办呀。开发环境VS2010,申请内存malloc和new都用了(但释放肯定和free、delete对应的,因为是把旧程序加到新程序里,太多了就没改)
谢谢!
------解决方案--------------------
重定义内存分配,附加输出信息
对比分配和释放的地址是不是一一对应。
------解决方案--------------------
既然你是分段, 要反复使用那一块内存, 可以在程序一开始就 new, 程序结束才 delete. 不要中间反复的 new/delete 撒. 内存碎片也可能把内存耗掉的.
------解决方案--------------------
调试->启动性能分析->.NET内存分配->运行得出分析结果。
会得出占用内存较多的函数和类,以及相应占用具体内存字节数。
------解决方案--------------------
看看是不是使用delete[]
我现在编了一个程序,简单来说实现的就是把一个文件分段,对每段进行编码,发送给解码器,解码器解码,再恢复成文件。
可随着文件的增大,解码器解码占得内存越来越大,传400M的视频文件我电脑的内存都不够用了。可我每解出一个分段就释放这个分段的内存,我仔细检查了每个new之后都有对应的delete,而且凡是写了的delete调试过程中都能看到确实是释放成功了。
我不明白为什么还会占那么多内存(用任务管理器看的),所以也不知道改哪儿,怎么办呀。开发环境VS2010,申请内存malloc和new都用了(但释放肯定和free、delete对应的,因为是把旧程序加到新程序里,太多了就没改)
谢谢!
Visual Studio 2010
内存
释放
------解决方案--------------------
重定义内存分配,附加输出信息
对比分配和释放的地址是不是一一对应。
------解决方案--------------------
既然你是分段, 要反复使用那一块内存, 可以在程序一开始就 new, 程序结束才 delete. 不要中间反复的 new/delete 撒. 内存碎片也可能把内存耗掉的.
------解决方案--------------------
调试->启动性能分析->.NET内存分配->运行得出分析结果。
会得出占用内存较多的函数和类,以及相应占用具体内存字节数。
------解决方案--------------------
看看是不是使用delete[]