gpt4 book ai didi

c++ - 删除 GDIPlus 位图不能减少内存使用

转载 作者:行者123 更新时间:2023-11-28 03:24:44 26 4
gpt4 key购买 nike

我有一个新的位图代码,但是当我使用删除时,任务管理器中的内存使用量并没有减少。

我的代码如下

Bitmap* pBuffer = new Bitmap(pMainImage->GetWidth(),  pMainImage->GetHeight());
delete pBuffer;

如何适当删除上面的pBuffer?因此内存使用回到调用 new Bitmap() 之前的水平。

最佳答案

这不是 Windows 内存管理器的工作方式。当您释放内存时,堆 block 只会被标记为“未使用”。可用于下一次分配。它确实合并空闲 block 并取消提交虚拟地址空间,但并不急于这样做。它使用的确切规则没有记录并且因操作系统版本而异。

任务管理器不能作为实际使用的虚拟内存的可靠指标。最重要的是,这并不容易做到。 HeapWalk() api 函数可以做到这一点,但会强烈警告实际使用它会产生有害的副作用。由于它必须使用太多锁才能使其安全。只有卡住所有线程的调试器才能在没有这些副作用的情况下做到这一点。就像 Windbg 的 !heap 命令一样。

关于c++ - 删除 GDIPlus 位图不能减少内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14471817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com