roubachof / Sharpnado.CollectionView

A performant list view supporting: grid, horizontal and vertical layout, drag and drop, and reveal animations.
The Unlicense
244 stars 30 forks source link

Rising Memory Consumption when using an ObservableRangeCollection with NotifyCollectionChangedAction.Reset #114

Open MAUIoxo opened 6 months ago

MAUIoxo commented 6 months ago

Platform (please complete the following information):

Describe the bug When I use an ObservableRangeCollection with the Sharpnado CollectionView, which has any kind of NotifyCollectionChangedAction.Reset, e.g. in an .AddRange(..., NotifyCollectionChangedAction.Reset), I see rising memory consumption and finally a Crash of my App on my real device.

I am not sure if it is the Sharpnado CollectionView, but I just wanted to mention it in case there is an issue.

I described this issue also on the .NET MAUI Issue page more detailled: Rising Memory Consumption leading to crashing App after a while when Utilizing NotifyCollectionChangedAction.Reset in ObservableRangeCollection

To Reproduce Steps to reproduce the behavior:

  1. Use .AddRange(..., NotifyCollectionChangedAction.Reset) on an ObservableRangeCollection that is bound to a (Sharpnado) CollectionView and see the memory consumption rising. This can also be observed when the same option is used in a .RemoveRange(.., NotifyCollectionChangedAction.Reset) call a couple of times.
  2. Animation and example project can be found on the corresponding issue: Rising Memory Consumption leading to crashing App after a while when Utilizing NotifyCollectionChangedAction.Reset in ObservableRangeCollection
  3. As I said, I am not sure if the Sharpnado CollectionView is involved in there, but just mentioned it in case

Exceptions (if applicable) There is no StackTrace available

Screenshots (if applicable) If applicable, add screenshots to help explain your problem.

MAUIoxo commented 4 months ago

As mentioned in MAUI Issue 21015 the root cause seems to be in the SharpnadoCollectionView. Is there a possibility to fix it?