flutter_perf_monitor 0.1.0
flutter_perf_monitor: ^0.1.0 copied to clipboard
Real-time performance monitoring with FPS tracking and memory usage for Flutter applications
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] #
0.1.0 - 2024-11-03 #
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/statwith graceful fallback for restricted devices - iOS: CPU metrics via
task_threadsand memory viamach_task_basic_info
- Enhanced platform channel integration
getMemoryInfomethod returning comprehensive memory statisticsgetCpuUsagemethod returning total and per-core CPU percentages- Fallback mechanisms for platforms without native support
- Documentation improvements
- Added
SETUP.mdwith detailed native implementation documentation - Updated
README.mdwith native capabilities and fallback behavior - Documented platform-specific APIs and limitations
- Added
- Build system enhancements
- Java/Kotlin 17 toolchain configuration for Android
- Modern Gradle configuration with Kotlin DSL
- Proper
.gitignoreconfiguration 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
_collectMetricsasync for native metric updates - Added error handling with debug logging
- Graceful degradation when native calls fail
- Made
Fixed #
- Android build errors with JVM compatibility (Java 17 configuration)
- Permission denied errors on Android 8+ devices accessing
/proc/stat - iOS missing
Runner.xcodeprojcausing 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.MemoryInfofor memory metrics - Reads
/proc/statwith permission handling - Fallback to memory-pressure-based CPU estimation
- Uses
- iOS Implementation:
FlutterPerfMonitorPlugin.swift(127 lines)- Uses
ProcessInfo.physicalMemoryandmach_task_basic_info - Thread-based CPU monitoring via
task_threads - Proper memory management with
vm_deallocate
- Uses
- Platform Channel:
flutter_perf_monitorchannel with two methods- All native calls wrapped in try-catch with fallbacks
- Non-blocking async updates every 100ms
0.0.1 - 2024-01-01 #
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
Version History #
- 0.1.0 - Added native Android/iOS implementations for real CPU and memory metrics
- 0.0.1 - Initial release with basic project structure and performance monitoring foundation
Contributing #
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
License #
This project is licensed under the MIT License - see the LICENSE file for details.