Skip to content

[10.0.60] CollectionView scrolling performance regression #35344

Description

@tranb3r

Description

We observed a progressive scroll performance regression in CollectionView across recent MAUI versions. The regression manifests as increased GC collection counts during scrolling, leading to janky, non-smooth scroll behavior. The effect is more pronounced with complex cell templates (nested layouts, converters, shadows, visual states).

Versions affected:

  • 10.0.51 : Baseline — acceptable GC pressure
  • 10.0.60 : Noticeable regression — GC count increases during scroll
  • 10.0.70-ci.main.26257.2 : Further degradation

GC collection counts increase significantly while scrolling a CollectionView, compared to the same scenario on 10.0.51. This is visible both in the attached diagnostic log and in the attached screen recording (visible lag and frame drops).

Something in the cell recycling or binding pipeline is allocating more managed objects per scroll cycle in 10.0.60+, triggering more frequent GC collections. The regression scales with cell template complexity — simple cells show a smaller delta, complex cells (converters returning new objects, Border with Shadow, VisualStateManager, ProgressBar) show a much larger one.

10.0.51.txt
10.0.60.txt
10.0.70-ci.main.26257.2.txt

10.0.51.webm
10.0.60.webm
10.0.70-ci.main.26257.2.webm

Steps to Reproduce

  1. Clone/open the attached repro project and deploy to an Android device or emulator.
  2. Once the app is running, scroll the list a few times up and down to warm up the view recycler.
  3. Scroll back to the top.
  4. Press Reset — this forces a full GC collect, waits for finalizers, and captures the baseline GC counts. All counters reset to 0.
  5. Press End — the list scrolls to the last item.
  6. Wait for the scroll to complete, then press Start — the list scrolls back to the top.
  7. Observe the Gen0 / Gen1 / Gen2 counters and compare with the attached log.

Link to public reproduction project repository

https://github.com/tranb3r/Issues/tree/main/MauiAppGC

Version with bug

10.0.60

Is this a regression from previous behavior?

Yes, this used to work in .NET MAUI

Last version that worked well

10.0.51

Affected platforms

Android

Affected platform versions

No response

Did you find any workaround?

No response

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-controls-collectionviewCollectionView, CarouselView, IndicatorViewi/regressionThis issue described a confirmed regression on a currently supported versionpartner/syncfusionIssues / PR's with Syncfusion collaborationplatform/androidregressed-in-10.0.60s/triagedIssue has been revieweds/verifiedVerified / Reproducible Issue ready for Engineering Triaget/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions