当前位置:网站首页>QT+OPENCV+FFTW内存问题
QT+OPENCV+FFTW内存问题
2022-08-02 03:35:00 【MAUM】
首先区分两个概念,内存和缓存。
非官方的说,程序占用的内存是指程序需要用的内存,比如new 出来的,malloc出来的,这些内存不进行delete 或者 free的话,会造成内存泄露,显式的表现就是,使用 top 命令查看mem used,那一项会一直增加。
缓存就是程序不用了的内存,但是为了快速加载,仍存在与内存中,但是如果可用(free)的内存不足时,会在缓存里分配内存。
所以~~~只需要关注程序used 的空间即可,不用关心缓存 buff/cache。
另外,QT和OPENCV里面的函数基本上不会内存泄露,除非你new一个,故意不delete。
fftw里面使用fftw_malloc分配的内存,需要使用 fftw_free进行释放。
遵从一个原则即可: 看到星号 * 就要提高警惕,是在析构函数里delete还是在某个子函数里delete。
申请和释放对应:
new delete
malloc free
fftw_malloc fftw_free
另外,对于fftw生成的计划fftw_plan 变量,需要使用fftw_destroy_plan,否则内存一点点增加,短期内看不出来,时间长了就蹦了。
OPENCV中一般是release,每一个申请的对象会有这个子函数,里面自动调用delete函数。
不能重复delete,否则很简单,程序报错。
边栏推荐
猜你喜欢
随机推荐
倒排单词
剑指Offer 47.礼物的最大值 动态规划
【LeetCode】Sum
408-二叉树-先序中序后序层次遍历
【LeetCode】Merge
最长公共子串
运行时应用自我保护(RASP):应用安全的自我修养
【TCS3200 color sensor and Arduino realize color recognition】
增量编译技术在Lightly中的实践
改变文件的扩展名
PHP实现阿里云HMAC-SHA1签名方法封装
h264转hls
字符串哈希
二进制中1的个数
Mysql数据库入门 (基础知识点 由来 各种指令 如何运用)
如何搭建私有云盘?
DMA相应外设映射
双网络安全nvr/布控球,可双向同时接入国网B接口视频监控平台和国标28181平台
【数据库】事务的四大特性<详解>
h264转flv









