当前位置:网站首页>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,否则很简单,程序报错。
边栏推荐
猜你喜欢
随机推荐
Plus版SBOM:流水线物料清单PBOM
5个开源组件管理小技巧
JS从扁平array转tree
Altium Designer Basics
js平层数组转树形结构(解决数据处理后源数据篡改)
剑指Offer 32.Ⅲ从上到下打印二叉树
rosdep update failure solution (pro-test effective)
rtsp转flv
KMP 字符串匹配
【详解】优先级队列的底层实现
DMA相应外设映射
jmeter之数据库连接JDBC安装与使用
逆序对数量与归并排序
Pylon CLI 低成本的本地环境管控工具应用实例
TCP-IP协议整理
UKlog.dat和QQ,微信文件的转移
基础IO(下):软硬链接和动静态库
改变文件的扩展名
Process (in): process state, process address space
剑指Offer 04.二位数组中的查找 线性查找









