M1芯片Mac编译Flutter应用时CPU/内存占满问题求助
问题场景
在M1芯片、macOS Sonoma 14.2.1 (23C71)设备上,用最新版VS Code编译Flutter 3.16.5项目,添加以下依赖后:
cupertino_icons: ^1.0.2 firebase_core: ^2.27.0 firebase_auth: ^4.17.8 flutter_riverpod: ^2.5.1 cloud_firestore: ^4.15.8 syncfusion_flutter_charts: ^25.2.4 lottie: ^3.1.1
iOS模拟器/物理设备编译时CPU直接拉满,Android模拟器编译时内存占满,且所有Flutter应用都存在该问题,已排除依赖本身问题,大概率是本地环境异常导致。
排查与解决步骤
彻底清理Flutter缓存与依赖
执行以下命令清空缓存,重新拉取干净的依赖包:flutter clean rm -rf pubspec.lock rm -rf ~/.pub-cache flutter pub get缓存损坏是这类资源异常占用的常见原因,清理后能解决大部分隐性问题。
优化VS Code插件设置
打开VS Code设置,搜索并关闭Flutter: Run Hot Reload On Save,减少后台自动编译的消耗;同时关掉Flutter: Enable Analytics,砍掉不必要的后台进程。另外,禁用不用的Flutter相关插件,降低编辑器本身的资源占用。调整iOS编译配置
打开iOS项目的Podfile,在post_install块中添加以下配置,降低编译时的CPU负载:post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) # 改用增量编译+优化编译逻辑 target.build_configurations.each do |config| config.build_settings['CLANG_ENABLE_MODULES'] = 'YES' config.build_settings['SWIFT_COMPILATION_MODE'] = 'incremental' end end end执行
pod deintegrate && pod install重新安装Pods。调整Android模拟器资源分配
打开Android Studio的AVD Manager,编辑目标模拟器的设置:把RAM调整到4GB以内(M1 Mac建议3GB),VM Heap设为512MB,减少内存占用;同时启用Hardware - GLES 2.0硬件加速,提升模拟器运行效率。系统层面减负
编译前关闭macOS的后台App刷新,退出所有无关后台应用(如浏览器、云盘同步工具、视频软件等)。另外检查系统更新,安装最新的Sonoma补丁,修复M1芯片可能存在的兼容性bug。重置Flutter环境
如果以上方法都无效,卸载当前Flutter版本,重新从官方渠道下载Flutter 3.16.5,重新配置环境变量,避免因安装包损坏或环境配置异常导致的问题。
内容的提问来源于stack exchange,提问作者Francesco Zanoncelli

