Android Financial Trading Terminal Performance and Memory Audit Checklist
Audit high-frequency market data rendering, Jetpack Compose recompositions, and memory allocations in Android trading apps.
Use this checklist when profiling and optimizing high-throughput Android trading apps, order books, and real-time portfolio dashboards. It targets 120 FPS UI performance, zero frame drops, memory churn reduction, and coroutine execution hygiene.
Role: Staff Android Performance Engineer specializing in low-latency Jetpack Compose architectures, high-throughput reactive streams, and real-time fintech rendering.
Context
- Trading Platform Application: {{app_name}}
- Streaming Market Data Throughput: {{websocket_throughput_target}}
- Compose Compiler Metrics & Stability Configuration: {{compose_compiler_metrics_config}}
- Persistence & Caching Engine: {{room_database_profile}}
- Minimum Target Device RAM & Baseline Tier: {{device_memory_class_tier}}
- Order Book & Charting Refresh Rate: {{market_depth_refresh_rate}}
Task
Develop a comprehensive Android performance optimization and memory profiling checklist to eliminate UI jank, prevent garbage collection thrashing, and maintain 120Hz frame rates under intense market volatility in {{app_name}}.
Method
- Analyze Compose Compiler Metrics outputs defined by {{compose_compiler_metrics_config}} to identify unstable models, unskippable composables, and mutable parameter anti-patterns.
- Formulate profiling assertions for the real-time order book rendering at {{market_depth_refresh_rate}} using Android Studio Macrobenchmark and Perfetto tracing.
- Audit high-frequency WebSocket and binary payload processing under {{websocket_throughput_target}} to verify thread-confinement away from
Dispatchers.Main. - Review memory allocation patterns during rapid quote ingestion to eliminate intermediate object allocations (boxing, lambda captures, string concatenation) that trigger GC pauses.
- Design stress-testing checkpoints for {{room_database_profile}} under concurrent read/write transactions during market open volatility bursts.
- Evaluate low-memory tolerance on {{device_memory_class_tier}} devices, auditing
onTrimMemoryresponsiveness and cache eviction policies. - Inspect Coroutine scope lifecycles, structured concurrency boundaries, and Backpressure strategies (Flow buffering/conflation) on live price streams.
- Structure definitive pass/fail benchmarks for layout pass durations, frame render times (p95 < 8ms, p99 < 12ms), and heap stability over a continuous 4-hour session.
Constraints
- Every checklist item MUST specify concrete profiling tooling (e.g., Android Studio Profiler, Perfetto, LeakCanary, Compose Tracing, Simpleperf).
- You MUST define strict threshold metrics (e.g., max permitted recomposition count, frame render time, heap allocation velocity in MB/s).
- You MUST NOT permit un-conflated Flow collection on high-frequency UI state observables.
- All recommendations must leverage modern Android Jetpack libraries and Kotlin 2.x language capabilities.
Output format
- Performance Baseline Executive Summary (max 150 words)
- Five technical audit sections: 1. Compose Stability & Recomposition Hygiene, 2. Memory Churn & GC Pauses, 3. Ingestion Engine & Concurrency, 4. Local Data Store Throughput, 5. Frame Render Budget & Jitter
- Format all items as:
[ ] Item ID | Performance Vector | Metric Target / SLA | Tool & Profiling Procedure | Optimization Action - Benchmark Sign-off Checklist and Release Gate Thresholds
Self-review
- Did I provide explicit quantitative metric targets (e.g., frame render budgets, GC pause duration ceilings) for every section?
- Are all variables ({{app_name}}, {{websocket_throughput_target}}, {{compose_compiler_metrics_config}}, {{room_database_profile}}, {{device_memory_class_tier}}, {{market_depth_refresh_rate}}) fully leveraged?
- Does the checklist specifically diagnose recomposition storms in high-frequency trading UI components?
Explicit role, a named task, and discrete steps the model can follow.
Background, inputs and variables the model needs before it starts.
Hard boundaries — what the model must and must not do.
A named, field-level shape for the response.
Ordered work items that force analysis before an answer.
Length and structure that travel across frontier models.
Signal density — instruction weight without padding.
Documented variables so the scaffold adapts to new inputs.
Quality bar, assumptions and behaviour when inputs are thin.
How much real usage the template has behind it.