Performance Testing
Firebase emulators, load testing, and profiling tools
Firebase Performance Monitoring
Custom traces instrumented in the iOS app
theme_load— Theme fetch & apply from Firestoreconch_blow_create— Creating a new conch blowfriends_list_load— Loading friends listimage_cache_load— Theme image cache retrieval
Firebase Emulator Controls
Start and stop local Firebase emulators
Stopped
| Service | Port | Status |
|---|---|---|
| Emulator UI | 4000 | - |
| Firestore | 8080 | - |
| Auth | 9099 | - |
| Storage | 9199 | - |
Seed Emulator Data
Populate emulator with test themes, users, conch blows, and friendships
Load Test Runner
Simulate concurrent users hitting Firestore reads & writes
| Operation | Count | p50 (ms) | p95 (ms) | p99 (ms) |
|---|
Xcode Performance Tests
Run XCTest performance tests via xcodebuild on the simulator
Unit: cache miss latency, UserDefaults encode/decode, cache size | UI: launch time, memory footprint, CPU usage
Xcode Instruments Profiling
Step-by-step workflow for profiling the Conch iOS app
- Open the Conch project in Xcode
- Select Product → Profile (Cmd+I) to build for profiling
- Choose the Time Profiler template for CPU analysis
- Use Allocations to track memory usage and leaks
- Use Network template to monitor Firebase API calls
- Record a session, navigate through key flows (theme load, conch blow, friends list)
- Look for hot paths > 50ms on the main thread
- Export traces via File → Export Trace for comparison