Delphi 11.1 FMX 关闭时 TGPUObjectsPool 内存泄漏

Pet*_*nes 2 delphi firemonkey delphi-11-alexandria

运行 11.1 时,我TGPUObjectsPool在 Windows 64 位(发布模式)下关闭简单的基本 FMX 2D 应用程序时遇到此错误。我第一次看到这个错误。

ReportMemoryLeaksOnShutdown := True仅使用in运行空白表单会project.dpr导致关闭时出现此错误。

TForm 上没有任何组件。只需运行并关闭即可。这让我想知道如果一个基本的空项目可以因这种内存泄漏而关闭,那么 Delphi 版本会进行什么样的 QA。

有什么解决方案可以消除这个错误吗?

---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:

9 - 24 bytes: TGPUObjectsPool x 1    
89 - 104 bytes: TObjectDictionary<System.TClass,System.Generics.Collections.TObjectList<FMX.TextLayout.GPU.TReusableObject>> x 1
Run Code Online (Sandbox Code Playgroud)

Rem*_*eau 6

这让我想知道 Delphi 版本的 QA 是怎样的

实际上很多。数月的 Beta 测试、大量修复和内部构建。

这个问题实际上是在测试期间报告的,但就在几周前,当时为最终版本修复为时已晚。但是,此泄漏(和其他泄漏)在 11.1 发布后已被公开报道:

RSP-37596 FMX TFontGlyphManager 的 UnInitialize 在最终确定中未调用

RSP-37600 TGPUObjectsPool 中出现意外内存泄漏

RSP-37613 仅提供表单服务的应用程序中的内存泄漏

RSP-37656 FMX 中的内存泄漏(简单项目)

还有其他类似的内存泄漏(在TFontGlyphManagerTBehaviorServices等中),因此希望这将在下一次更新中得到修复。

我想也许他们应该考虑让他们的样本包含 ReportMemoryLeaksOnShutdown=True。

有趣的是,因为我也看到了类似的报告:

RSP-37598 使 RTL、FMX 和 VCL 开发人员默认打开内存泄漏检查

  • @UweRaabe:如果有人问我很愿意帮忙。 (2认同)