gh-Dimillian-Skills/swiftui-performance-audit/references/profiling-intake.md
2026-03-15 11:01:31 +01:00

1.9 KiB

Profiling intake and collection checklist

Intent

Use this checklist when code review alone cannot explain the SwiftUI performance issue and you need runtime evidence from the user.

Ask for first

  • Exact symptom: CPU spike, dropped frames, memory growth, hangs, or excessive view updates.
  • Exact interaction: scrolling, typing, initial load, navigation push/pop, animation, sheet presentation, or background refresh.
  • Target device and OS version.
  • Whether the issue was reproduced on a real device or only in Simulator.
  • Build configuration: Debug or Release.
  • Whether the user already has a baseline or before/after comparison.

Default profiling request

Ask the user to:

  • Run the app in a Release build when possible.
  • Use the SwiftUI Instruments template.
  • Reproduce the exact problematic interaction only long enough to capture the issue.
  • Capture the SwiftUI timeline and Time Profiler together.
  • Export the trace or provide screenshots of the key SwiftUI lanes and the Time Profiler call tree.

Ask for these artifacts

  • Trace export or screenshots of the relevant SwiftUI lanes
  • Time Profiler call tree screenshot or export
  • Device/OS/build configuration
  • A short note describing what action was happening at the time of the capture
  • If memory is involved, the memory graph or Allocations data if available

When to ask for more

  • Ask for a second capture if the first run mixes multiple interactions.
  • Ask for a before/after pair if the user has already tried a fix.
  • Ask for a device capture if the issue only appears in Simulator or if scrolling smoothness matters.

Common traps

  • Debug builds can distort SwiftUI timing and allocation behavior.
  • Simulator traces can miss device-only rendering or memory issues.
  • Mixed interactions in one capture make attribution harder.
  • Screenshots without the reproduction note are much harder to interpret.