PackageTrack
Sign in Get early access

flutter_perf_monitor

Real-time performance monitoring with FPS tracking and memory usage for Flutter applications

0.3.1 5.2K downloads/mo #3802 most downloaded on pub.dev Dhia-Bechattaoui/flutter_perf_monitor

What this package is like to depend on

Last release 1 months ago

16 Jul 2026

Release timing varies

gaps range from 2 weeks to 7 months

Most releases are documented

notes for 8 of 9 stable releases

Nothing withdrawn

no release was ever pulled

1 years old

9 releases · first in 2025

8 releases in the last 12 months

see the full history below

Release timeline

9 releases · Aug 2025 to Jul 2026
2026
Release Pre-release

Releases

latest 9
  1. 0.3.1 16 Jul 2026
    Release notes
    • Removed explicit Kotlin Gradle Plugin (KGP) application to comply with Flutter 3.24+ Built-in Kotlin standards and suppress KGP warnings.
    • Wrapped kotlinOptions in project.pluginManager.withPlugin("org.jetbrains.kotlin.android") to prevent Could not find method kotlinOptions() crashes on older Flutter SDKs.
    • Ensured Java and Kotlin JVM targets are uniformly configured to JavaVersion.VERSION_17 to prevent compilation mismatch errors.
    • Bumped package version to 0.3.1.
    Open source →
    Release notes

    Fixed

    • KGP Warning & Android Compilation Error
      • Fully migrated to Flutter Built-in Kotlin standards by removing kotlinOptions and the Kotlin Gradle Plugin application. This simultaneously fixes the KGP warning on Flutter 3.24+ and the kotlinOptions crash on older Flutter SDKs.
    Open source →
  2. 0.3.0 23 Jun 2026
    Release notes
    • Added getTotalMemory() API to expose total device memory
    • Migrated Android build script to Groovy (build.gradle) for full Flutter 3.24+ Built-in Kotlin compatibility without deprecation warnings
    • Fixed actions/checkout failure in CI for fork PRs by providing github.token fallback
    • Recreated iOS example project to fully integrate Swift Package Manager and remove legacy CocoaPods references
    • Added INTERNET permission to example Android manifest for VM service socket binding
    Open source →
    Release notes

    Added

    • Total Memory API
      • Exposed FlutterPerfMonitor.getTotalMemory() to get the total device memory in bytes

    Fixed

    • iOS Run Failure
      • Fixed an issue where the iOS module failed to run due to incorrect source_files paths in the .podspec (contributed by @Dabbit-Chan)
    • Android Built-in Kotlin Support
      • Migrated android/build.gradle from Kotlin DSL to Groovy to support Flutter 3.24+ Built-in Kotlin without triggering deprecation warnings or JVM target mismatches
    Open source →
  3. 0.2.3 09 Jun 2026
    Release notes

    Using the new HOMEBREW_TAP_TOKEN PAT to authenticate the git push step, so that GitHub Actions will correctly trigger the publish.yml workflow. Bumped version to 0.2.3 to ensure a fresh tag is created on the next run.

    Open source →
    Release notes

    Fixed

    • Re-trigger pub.dev auto-publish to fix GitHub Token limitation.
    Open source →
  4. 0.2.1 09 Jun 2026
    Release notes

    Fixed

    • Android Gradle Plugin compatibility
      • Removed explicit Kotlin Gradle Plugin (kotlin-android) application to support Flutter 3.24+ Built-in Kotlin and AGP 9.0+ compatibility
    • iOS Swift Package Manager (SPM) compatibility
      • Added support for Swift Package Manager on iOS by generating Package.swift and reorganizing source files to support the latest Flutter iOS plugin structure
    Open source →
  5. 0.2.0 07 Nov 2025
    Release notes

    Added

    • Web platform support
      • Full web platform compatibility with proper error handling
      • CPU usage monitoring on web using FPS-based estimation
      • Graceful handling of missing native platform channels on web
      • Memory monitoring attempt on web (shows 0.0 MB due to browser security restrictions)

    Fixed

    • Web platform errors
      • Fixed MissingPluginException errors when running on web
      • Added platform detection to skip native method channel calls on web
      • Fixed ProcessInfo.currentRss errors on web by using conditional imports
      • Updated index.html to use modern Flutter web initialization API
      • Fixed deprecated FlutterLoader.loadEntrypoint and serviceWorkerVersion warnings
      • Fixed _flutter.buildConfig requirement error
      • Fixed deprecated apple-mobile-web-app-capable meta tag
      • Replaced all print statements with debugPrint for better production code practices

    Changed

    • Web platform behavior
      • CPU usage on web now dynamically updates based on FPS (no longer stuck at first value)
      • Memory shows 0.0 MB on web (expected limitation - browsers don't expose process memory)
      • Improved error handling with silent fallbacks for web platform
      • Added conditional imports for dart:io and dart:js to prevent compilation errors on different platforms

    Technical Details

    • Web Implementation: Conditional platform detection using kIsWeb
      • Uses dart:js for JavaScript interop to access performance.memory API
      • Falls back gracefully when browser APIs are unavailable
      • CPU estimation based on FPS performance (60 FPS = ~30% CPU, lower FPS = higher CPU)
    Open source →
  6. 0.1.1 04 Nov 2025
    Release notes

    Fixed

    • Android CPU usage calculation accuracy
      • Fixed CPU usage calculation to use proper two-snapshot comparison method
      • Previously used instantaneous snapshot which didn't reflect actual CPU usage over time
      • Now correctly calculates CPU usage percentage by comparing differences between /proc/stat readings
      • First call returns 0.0% (baseline initialization), subsequent calls show accurate CPU usage
    Open source →
  7. 0.1.0 03 Nov 2025
    Release notes

    Added

    • Native implementations for Android and iOS
      • Real system-level memory metrics (total, available, used) via platform channels
      • Accurate CPU usage monitoring with per-core support on Android and iOS
      • Android: CPU metrics via /proc/stat with graceful fallback for restricted devices
      • iOS: CPU metrics via task_threads and memory via mach_task_basic_info
    • Enhanced platform channel integration
      • getMemoryInfo method returning comprehensive memory statistics
      • getCpuUsage method returning total and per-core CPU percentages
      • Fallback mechanisms for platforms without native support
    • Documentation improvements
      • Added SETUP.md with detailed native implementation documentation
      • Updated README.md with native capabilities and fallback behavior
      • Documented platform-specific APIs and limitations
    • Build system enhancements
      • Java/Kotlin 17 toolchain configuration for Android
      • Modern Gradle configuration with Kotlin DSL
      • Proper .gitignore configuration for generated files
      • iOS project structure regeneration for example app

    Changed

    • Memory monitoring accuracy
      • Now shows real system total/available memory on Android/iOS
      • Conditionally displays "Available" and "Usage" only when native data available
      • Removed "N/A" placeholders for better UX
    • CPU monitoring accuracy
      • Real system CPU usage on Android and iOS (not FPS-based)
      • Per-core CPU usage tracking on supported platforms
      • Improved FPS-based fallback for non-native platforms
    • Platform channel communication
      • Made _collectMetrics async for native metric updates
      • Added error handling with debug logging
      • Graceful degradation when native calls fail

    Fixed

    • Android build errors with JVM compatibility (Java 17 configuration)
    • Permission denied errors on Android 8+ devices accessing /proc/stat
    • iOS missing Runner.xcodeproj causing build failures
    • CPU usage showing 0.0% on first frame calculation
    • Example app test failures with boilerplate counter test

    Technical Details

    • Android Implementation: FlutterPerfMonitorPlugin.kt (156 lines)
      • Uses ActivityManager.MemoryInfo for memory metrics
      • Reads /proc/stat with permission handling
      • Fallback to memory-pressure-based CPU estimation
    • iOS Implementation: FlutterPerfMonitorPlugin.swift (127 lines)
      • Uses ProcessInfo.physicalMemory and mach_task_basic_info
      • Thread-based CPU monitoring via task_threads
      • Proper memory management with vm_deallocate
    • Platform Channel: flutter_perf_monitor channel with two methods
      • All native calls wrapped in try-catch with fallbacks
      • Non-blocking async updates every 100ms
    Open source →
  8. 0.0.2 01 Sep 2025

    Nothing published for this version

  9. 0.0.1 12 Aug 2025
    Release notes

    Added

    • Initial release
    • Project structure and configuration
    • Basic Flutter performance monitoring package setup
    • FPS tracking capabilities foundation
    • Memory usage monitoring foundation
    • Real-time performance monitoring architecture

    Changed

    • N/A

    Deprecated

    • N/A

    Removed

    • N/A

    Fixed

    • N/A

    Security

    • N/A

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive