45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
# 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.
|