有时,当我关闭我的应用程序时,我会出现以下错误:
---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:
21 - 28 bytes: TGradientPoints x 2, TGradientPoint x 4, Unknown x 2
29 - 36 bytes: TD2DBitmapHandle x 1, TGradient x 2, TBitmapImage x 3, TBrushBitmap x 2
37 - 44 bytes: TFont x 1, TList<System.Classes.TCollectionItem> x 2, TBrushResource x 2, TPosition x 12
45 - 52 bytes: TBitmap x 3, TObjectList<FMX.Graphics.TCanvasSaveState> x 1, UnicodeString x 1
53 - 60 bytes: TBrush x 1
61 - 68 bytes: Unknown x 1
69 - 76 bytes: TTransform x 2
77 - 84 bytes: TStrokeBrush x 1
237 - 252 bytes: TCanvasD2D x 1
---------------------------
OK
---------------------------
问题是我找不到这些内存泄漏是从哪里来的,而且由于这个异常很少引发,所以很难进行调试。:(
他们有什么好方法来找出内存泄漏的根本原因吗?
1条答案
按热度按时间v64noz0r1#
该选项是使用FASTMM5,而不是Delphi中包含的默认FastMM4。
借助FastMM5,我们可以做到:
然后在关闭时,我们有每个内存泄漏的准确堆栈跟踪。