gpt4 book ai didi

c++ - 内存使用和最小化

转载 作者:搜寻专家 更新时间:2023-10-31 00:04:46 24 4
gpt4 key购买 nike

我们有一个图形密集型应用程序,它使用 FOX 工具包和 OpenSceneGraph,当然还有 C++。我注意到在运行应用程序一段时间后,似乎存在内存泄漏。但是,当我最小化时,似乎释放了大量内存(如 Windows 任务管理器中所示)。当应用程序恢复时,内存使用率会攀升,但会稳定到低于最小化之前的数量。

这是一个巨大的指标,表明我们存在严重的内存泄漏吗?或者这可能与 Windows 处理图形应用程序的方式有关?我不太确定发生了什么。

最佳答案

您看到的只是内存缓存。当您调用 free()/delete()/delete 时,大多数实现实际上不会将此内存返回给操作系统。他们会保留它,以便在您下次请求时以更快的方式归还。当您的应用程序最小化时,它们将释放此内存,因为您不会很快请求它。

您不太可能有真正的内存泄漏。任务管理器不是特别准确,并且有很多行为可以改变您正在使用的表观内存量——即使您正确释放了它。如果您仍然担心,您需要获得一个实际的内存分析器来查看。

另外,是的,Windows 在最小化应用程序时会做很多事情。例如,如果您使用 Direct3D,则会发生设备丢失。有一些线程计时。 Windows 旨在为用户一次在单个应用程序中提供最佳体验,并且可能会从您的应用程序中获取额外的缓存/缓冲资源来执行此操作。

关于c++ - 内存使用和最小化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3566491/

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