当前位置:网站首页>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,否则很简单,程序报错。
边栏推荐
猜你喜欢
随机推荐
PHP将字符切割成每个拼音
金融行业案例 | 未来智安XDR助力银行业客户优化安全运营体系,有效提高告警研判率
Mongoose无法更新时间戳
全加器高进位和低进位的理解
全排列 DFS
Lightly:新一代的C语言IDE
Class ‘PHPWord_Writer_Word2003‘ not found
flask简单接口实现
Go的安装使用(一)
Process (in): process state, process address space
JVM机制
剑指Offer 36.二叉搜索树与双向链表 中序遍历
剑指Offer 13.机器人的运动范围 深度优先遍历
进程(番外):自定义shell命令行解释器
运行时应用自我保护(RASP):应用安全的自我修养
倒排单词
《2022年中国网络安全市场全景图》
[Database] Four characteristics of transaction
企业需要知道的5个 IAM 最佳实践
unity学习(一):自动化创建模板脚本