gpt4 book ai didi

delphi - 使用 Fastmm4 什么时候会出现虚拟内存问题?

转载 作者:行者123 更新时间:2023-12-03 15:37:19 25 4
gpt4 key购买 nike

我们有一个应用程序,其虚拟内存会上升并持续运行一天多。两天后,它已攀升至约 500MB。我尝试对访问数据库并发出大量 http 和肥皂请求的应用程序进行分析,但我的 Fastmm4 显示没有泄漏。

我不确定如何或何时声明内存以及不断增加的虚拟内存是否存在问题?

京东

最佳答案

它可能不是“泄漏”内存,而更多的是“囤积”内存。在应用程序无法释放内存之前,内存不会泄漏。例如当它的指针丢失后。

创建对象时会占用内存,销毁对象时会释放内存(如果对象被新对象覆盖,则内存会丢失)。泄漏是指内存从未被释放(应用程序关闭后)。这可能是在应用程序运行期间没有释放对象的情况,但是如果该对象被添加到对象列表或对象数组中,则列表/数组只会不断增长(而不是覆盖),如果对象归应用程序在应用程序关闭时会自动释放,但直到应用程序关闭后才会释放,FastMM 没有任何可报告的内容,因为没有内存泄漏(应用程序关闭时内存已全部释放)

内存分析器可以显示当前内存中每个对象的数量以及对象类(我们也使用 AQ Time 来执行此操作)。您需要在一小时/2 小时/3 小时后查看内存配置文件。大多数长时间运行的应用程序(据我所知)都有相当恒定的(长期)内存需求,并且内存中的每个对象也保持相当恒定。显然,当应用程序繁忙时可能会出现峰值,但这些应该会恢复到稳定水平。查看是否有任何对象计数持续增长。

我敢打赌,应用程序正在动态创建一些以表单或应用程序为父级的内容,将其添加到列表的末尾,而不是释放它。该对象一直驻留在内存中,直到应用程序关闭,但每个新对象都需要更多内存。

关于delphi - 使用 Fastmm4 什么时候会出现虚拟内存问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2957120/

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