当前位置:网站首页>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,否则很简单,程序报错。
边栏推荐
猜你喜欢
随机推荐
【详解】线程池及其自定义线程池的实现
jni中jstring与char*互转
GO Module的依赖管理(二)
rosdep update失败解决办法(亲测有效)
云服务器web项目部署详解
功能性网站
408-Binary tree-preorder inorder postorder level traversal
视频监控平台-国标28181-2016版平台,已公网部署
webdriver封装
渗透测试(PenTest)基础指南
运行时应用自我保护(RASP):应用安全的自我修养
剑指Offer 36.二叉搜索树与双向链表 中序遍历
步兵相关连接
剑指Offer 04.二位数组中的查找 线性查找
AD实战篇
8款最佳实践,保护你的 IaC 安全!
字符串哈希
剑指Offer 31.栈的压入、弹出
【LeetCode】合并
改变文件的扩展名