ワンクリックで
flutter-devtools-perf
Use Flutter DevTools Performance, CPU, Memory, and Network views to find UI-thread and raster-thread bottlenecks.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use Flutter DevTools Performance, CPU, Memory, and Network views to find UI-thread and raster-thread bottlenecks.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Schedule, batch, and constrain background work with WorkManager, BGTaskScheduler, and push-over-poll patterns to minimize battery and data cost.
Attribute battery drain to CPU, radio, GPS, display, and background work using Android Battery Historian and Xcode Energy Log / Instruments Energy gauge.
Shrink APK/AAB and IPA size with R8/ProGuard, dead-code elimination, asset hygiene, and Android App Bundle / App Thinning best practices.
Cut local and CI build times on Android (Gradle config cache, build cache, KSP over KAPT) and iOS (Xcode build cache, ccache, modules). Use when clean builds exceed ten minutes.
Downsample, cache, and choose the right image format (AVIF, HEIC, WebP) to cut memory, network, and decode time on iOS and Android.
Find and fix common memory leaks caused by listeners, closures, singletons, and lifecycle mismatches on iOS, Android, Flutter, and React Native.
| name | flutter-devtools-perf |
| description | Use Flutter DevTools Performance, CPU, Memory, and Network views to find UI-thread and raster-thread bottlenecks. |
Flutter DevTools is the canonical profiler for Flutter apps on iOS, Android, desktop, and web. Run it against a profile-mode build for real numbers; debug mode is up to 10× slower and obscures real bottlenecks.
flutter pub global activate devtools
flutter run --profile
# DevTools URL printed in the run output; open in Chrome
Or from VS Code: Command Palette → Dart: Open DevTools.
Reading pattern:
Tab: CPU Profiler. Click Record, perform the action, stop.
Filter to the UI isolate. Use VM Tags (e.g., CompileUnoptimized, Runtime) to find compile jank versus steady state.
retained counts reveal leaks.Filter by type to check your State and controller classes.
For CI, use the leak_tracker package:
void main() {
LeakTracking.start();
runApp(const MyApp());
}
DevTools → Widget Inspector → More → Rebuild Stats.
Consumer/BlocBuilder wrapping the whole screen.const constructors.useCallback via hooks).Shows Dio / http client requests:
Use to confirm caching (302 from cache) and to spot request storms.
Riverpod and Provider expose their state here. Useful to see when state changes and which widgets listen.
A unique Flutter problem on Android: the first animation after install compiles shaders, causing visible jank.
Fix:
Use Impeller (default on iOS, enabled on Android by default in recent stable). Impeller pre-compiles shader variants.
For legacy Skia: generate SkSL warm-up:
flutter run --profile --cache-sksl --purge-persistent-cache
# reproduce animations you care about
# quit; the SkSL is saved. Build:
flutter build apk --bundle-sksl-path flutter_01.sksl.json
If using Impeller, enable:
flutter run --profile --dart-define=IMPELLER_ENABLE_VALIDATION=1
Validation logs mis-uses that cause unexpected GPU work.
Use dart:developer's Timeline in your code:
Timeline.startSync('loadFeed');
final feed = await api.fetchFeed();
Timeline.finishSync();
Ship a production profiler like SentryPerformance or Firebase Performance for field data.
const constructors everywhere possible.ListView.builder + itemExtent for uniform rows.RepaintBoundary around an animated subtree inside a larger static screen.compute() or Isolate.run.precacheImage before the frame that needs them.--profile mode, not --debug.