作者:S_o_m_n_u_211 | 来源:互联网 | 2023-06-04 20:33
声明了一个指针成员变量,在某函数中创建对象,析构的时候删除并赋予空值,
但通过任务管理器发现内存使用率没有降下来.
怎么没有降呢?
23 个解决方案
这个与操作系统有关系的。
有的操作系统,当你释放指针时不会马上归还,等下一次再申请的继续利用,这样有利于提高申请效率。
你可以这样测试一下。
释放时通过任务管理器发现内存使用率没有降下来。你再申请一个同样大的内存看没有又增加。如果没有增加说明没有问题,否则可能程序有问题。
创建的时候增加了么?
用任务管理器看不明显的话,可以申请一大块内存试试
任务管理器可能刷新没有那么快,而且对于使用量小的也可能不敏感,如果实在是需要确定的话,可以自己写代码进行检测下内存使用情况。当然那是在确保内存已经释放的情况下。
试一下不要在析构释放,而是增加一个函数进行释放操作,要释放时主动调用它。
用函数释放吧,那样立杆见影.任务管理器也不是很准的
楼主用的好象并不是动态分配的内存(非堆内存) 不要误导
这个问题之前也看到有讨论过,当你释放的时候并不代表系统也会马上释放掉这些资源。如果想在任务管理器中看到比较明显的效果,可以尝试申请一块大点的内存看看
本人也认为析构与构造是一对, 既然有单独函数进行空间申请,就应该有单独函数卸载,这是结对编程的思想。否则你调用多次申请空间的函数,不就泄漏了吗
按道理不会,可能是刷新不够快吧,至于指针所指向的空间,既然他delete后把它赋为NULL就不存在了.