FreakyAli / Maui.FreakyControls

FreakyControls is a free OSS UI Kit for .NET MAUI which provides a set of controls and utilities to build modern mobile apps.
MIT License
316 stars 38 forks source link

Leak Proof Controls #143

Open usefulBeeing opened 3 months ago

usefulBeeing commented 3 months ago

While exploring the FreakyControls, I also took the opportunity to test them for possible memory leaks against a wrapper I created around the MemoryToolkit.

Describe the solution you'd like:

Leak free controls in v5.0, currently a pre-release.

Platform and Target Devices:

Following are the test results:

[WindowOnBackDispatcher] OnBackInvokedCallback is not enabled for the application. [WindowOnBackDispatcher] Set 'android:enableOnBackInvokedCallback="true"' in the application manifest. [EGL_emulation] app_time_stats: avg=261.98ms min=1.99ms max=3183.92ms count=13 [MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled [MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled [MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled [MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled [MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled [MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled [MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled [MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled [MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled [MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled [MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled [AutofillManager] notifyViewEnteredForFillDialog:1073741829 [AutofillManager] notifyViewEnteredForFillDialog:1073741830 [AutofillManager] notifyViewEnteredForFillDialog:1073741831 [iedleakdetector] Explicit concurrent copying GC freed 22748(893KB) AllocSpace objects, 3(60KB) LOS objects, 49% free, 5716KB/11MB, paused 335us,85us total 13.589ms [iedleakdetector] Cleared Reference was only reachable from finalizer (only reported once) [iedleakdetector] Explicit concurrent copying GC freed 6039(265KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5547KB/10MB, paused 256us,50us total 13.472ms [iedleakdetector] Explicit concurrent copying GC freed 921(72KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5522KB/10MB, paused 321us,52us total 11.678ms [iedleakdetector] Explicit concurrent copying GC freed 61(33KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5521KB/10MB, paused 356us,48us total 13.492ms [iedleakdetector] Explicit concurrent copying GC freed 7(32KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5521KB/10MB, paused 314us,41us total 13.011ms [iedleakdetector] Explicit concurrent copying GC freed 7(32KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5521KB/10MB, paused 336us,42us total 12.478ms [iedleakdetector] Explicit concurrent copying GC freed 7(32KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5521KB/10MB, paused 258us,50us total 11.856ms [iedleakdetector] Explicit concurrent copying GC freed 7(32KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5521KB/10MB, paused 333us,57us total 12.008ms [iedleakdetector] Explicit concurrent copying GC freed 7(32KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5521KB/10MB, paused 271us,46us total 11.357ms [iedleakdetector] Explicit concurrent copying GC freed 7(32KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5521KB/10MB, paused 260us,47us total 11.617ms [iedleakdetector] Explicit concurrent copying GC freed 7(32KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5521KB/10MB, paused 282us,43us total 12.845ms [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakySignatureCanvasView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakySignatureCanvasViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyImage is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyImageHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakySignatureCanvasView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakySignatureCanvasViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakySvgImageView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗SKCanvasViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BoxView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BoxViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Label is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LabelHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗VerticalStackLayout is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Grid is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakySignaturePadView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗RoundRectangle is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Label is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LabelHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ActivityIndicator is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ActivityIndicatorHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Grid is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyButton is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗SKCanvasView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗SKCanvasViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyCheckbox is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗RoundRectangle is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakySvgImageView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗SKCanvasViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Label is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LabelHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakySvgImageView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗SKCanvasViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Grid is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyChip is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyChipGroup is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyCircularImage is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyCircularImageHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Entry is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗EntryHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗CodeView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗CodeView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗CodeView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗CodeView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗HorizontalStackLayout is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Grid is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyCodeView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyCropView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyDatePicker is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyDatePickerHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyEditor is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyEditorHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyEntry is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyEntryHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyImage is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyImageHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyJumpList is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗SKCanvasViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyPicker is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyPickerHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Entry is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗EntryHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗CodeView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗CodeView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗CodeView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Ellipse is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗CodeView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗HorizontalStackLayout is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Grid is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyCodeView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Button is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗StatefulButtonHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Button is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗StatefulButtonHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Button is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗StatefulButtonHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Button is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗StatefulButtonHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Button is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗StatefulButtonHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Button is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗StatefulButtonHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Button is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗StatefulButtonHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Button is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗StatefulButtonHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Button is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗StatefulButtonHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Button is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗StatefulButtonHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Button is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗StatefulButtonHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗RoundRectangle is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Image is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ImageHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Grid is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Grid is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyPinCodeControl is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗SKCanvasView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗SKCanvasViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyRadioButton is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyRadioGroup is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakySvgImageView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗SKCanvasViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakySwipeButton is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗SKCanvasView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗SKCanvasViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakySwitch is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗RoundRectangle is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyEntry is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyEntryHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Border is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BorderHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Label is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LabelHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Label is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LabelHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗Grid is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BoxView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗BoxViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗VerticalStackLayout is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyTextInputLayout is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyTimePicker is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyTimePickerHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗FreakyZoomableView is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗ContentViewHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗VerticalStackLayout is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗LayoutHandler is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗DetectorPage is a zombie [0:] MemoryToolkit.Maui.GarbageCollectionMonitor: Warning: ❗🧟❗PageHandler is a zombie

Screenshotst:

_freakyLeakTestResults
FreakyAli commented 2 months ago

Dang everything is a zombie 😨

FreakyAli commented 1 month ago

@usefulBeeing I've been doing some research on this lately it seems this is a .NET MAUI issue, can you do us a favor and try doing this for the native(maui) controls let's see how many zombies do we really have natively

usefulBeeing commented 1 month ago

@FreakyAli , all native controls tested were a success story, the only exception is the border control. Please check the results out under the README page of the SimplifiedLeakDetector.Maui project when you have time.

FreakyAli commented 1 month ago

@usefulBeeing I see we can fix this in the coming days i should get free enough in the middle of this month

FreakyAli commented 3 weeks ago

@usefulBeeing Used MemoryToolkit for one of my apps yesterday, Image and a bunch of other controls seem to have the zombie issue too

usefulBeeing commented 1 week ago

Please, check how the author of UraniumUI identified the leak source. I hope this helps⚓

FreakyAli commented 1 week ago

Please, check how the author of UraniumUI identified the leak source. I hope this helps⚓

This definitely helps, Thanks!