運行 11.1,TGPUObjectsPool在 Windows 64 位(發布模式)下關閉一個簡單的基本 FMX 2D 應用程式時出現此錯誤。我第一次看到這個錯誤。
只需運行帶有ReportMemoryLeaksOnShutdown := Truein的空白表單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
uj5u.com熱心網友回復:
這讓我想知道為 Delphi 版本做了什么樣的 QA
很多,其實。幾個月的 Beta 測驗、大量修復和內部構建。
這個問題實際上是在測驗期間報告的,但就在幾周前,在為最終版本修復為時已晚之后。但是,在 11.1 發布后,此泄漏(和其他泄漏)已被公開報告:
RSP-37596 FMX TFontGlyphManager 的 UnInitialize 未在最終確定中呼叫
RSP-37600 TGPUObjectsPool 中的意外記憶體泄漏
RSP-37613 僅服務表單的應用程式中的記憶體泄漏
RSP-37656 FMX 中的記憶體泄漏(簡單專案)
還有其他類似的記憶體泄漏(在TFontGlyphManager、TBehaviorServices等),所以希望這將在下一次更新中得到修復。
我想也許他們應該考慮讓他們的樣本包括 ReportMemoryLeaksOnShutdown=True。
有趣,因為我也看到了類似的報告:
RSP-37598 使 RTL、FMX 和 VCL 開發人員默認打開記憶體泄漏檢查
uj5u.com熱心網友回復:
我修復了它(作為一種解決方法),包括 ShareMem 作為我專案源代碼中使用的第一個單元。
uj5u.com熱心網友回復:
試試這個:
uses
{$IFDEF VER350} // 11.x
FMX.FontGlyphs, FMX.TextLayout.GPU,
{$ENDIF}
finalization
{$IFDEF VER350} // 11.x
// RAD Studio 11 memory leak
TFontGlyphManager.UnInitialize;
TGPUObjectsPool.Uninitialize;
{$ENDIF}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/460949.html
標籤:德尔福 火猴 delphi-11-亚历山大
