gpt4 book ai didi

c++ - 长时间运行的 C++ 应用程序中的内存泄漏

转载 作者:太空狗 更新时间:2023-10-29 20:11:41 24 4
gpt4 key购买 nike

我正在运行一个长时间运行的 C++ 应用程序,它分配不同的对象并将其存储在几个双端队列和映射中,并一次从这些数据结构中释放这些对象。我正在经历内存的少量增加(通常为 1 mb 到 2 mb)一天一天。我运行了内存泄漏检测器(valgrind),但我找不到任何可疑的内存泄漏。我想知道问题是否出在存储对象的双端队列和映射上。一旦从数据结构中弹出对象,双端队列和映射的内存是否会立即将内存释放给操作系统?谁能指出内存增加的解决方案或一般可能的原因?

最佳答案

C++ 标准不保证 delete 会向操作系统释放内存。事实上,许多标准 C++ 库并没有这样做。如果您希望将内存释放给操作系统,那么您将不得不使用操作系统自己的内存分配例程。

标准 C++ 库提供了自定义分配器,可以帮助您做到这一点。

关于c++ - 长时间运行的 C++ 应用程序中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32003038/

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