Skip to content
Nuvyntra Labs

Versus APM and EventCounters

Application Insights, Sentry performance, and App Center are hosted APMs. EventCounters are a .NET runtime surface. Performance is an on-device scoreboard plus a maui profile wrapper. It is not a drop-in APM replacement.

RequirementPerformanceEventCountersApplication Insights / Sentry
Named traces in app codeYesManualYes
Lightweight / no SaaSYesYesNo
MAUI page / startup helpersYesNoPartial
Stop maui profile on first frameMauiProfile / maui-perfNoNo
Retain-path / CPU flame graphNo (use a profiler)PartialPartial

Versus raw maui profile

maui profile is the official EventPipe CLI. MauiProfile and maui-perf do not replace it — they hide the stopping-event flags and call Complete() at first frame or a named scenario.

NeedStart with
Official flags and docsmaui profile
Shorter android / ios aliases and 30s durationsmaui-perf (Plugin.Maui.Performance.Cli)
Stop startup on first frame or CheckoutMauiProfile + UseMauiPerformance
On-device scoreboard without a .nettraceMauiPerformance.FormatReport()

Versus Diagnostics, LeakAnalyser, and Observability

NeedPackage
Startup / page / API timings and memory scoreboardPlugin.Maui.Performance
Wrap maui profile / stop a .nettrace on first framePlugin.Maui.Performance (MauiProfile + maui-perf)
Page / view still alive after popPlugin.Maui.LeakAnalyser
Crash, ANR, pre-crash breadcrumbsPlugin.Maui.Diagnostics
Umbrella export of sibling eventsPlugin.Maui.Observability

Choose LeakAnalyser when the question is whether a view is still rooted. Choose Diagnostics when the failure is a crash or ANR. Choose Performance when the question is how long something took, or when you want maui profile to stop without memorizing stopping-event flags.

When to choose Performance

  • You need startup, page, navigation, API, image, render, and memory timings on Android or iOS.
  • You want a compact on-device report without a SaaS APM.
  • You want maui profile startup to stop on first frame or a named scenario.
  • You want maui-perf aliases (android / ios, 30s, speedscope) over the long official flags.

Stay on Application Insights or Sentry when the org already standardized on a hosted APM. Use a memory profiler for retain paths. Use LeakAnalyser for visual-tree leaks. Use Diagnostics for crashes.

Discussion

Comment on Plugin.Maui.Performance. The thread lives on this component's GitHub repository (nuvyntralabs/Plugin.Maui.Performance). Sign in with GitHub — Giscus uses Discussions, Utterances uses Issues.