在 Debian 上提升 Flutter 性能,可以从 系统环境、Flutter 配置、构建方式、图形与驱动、开发习惯 等多个层面入手。下面按实用性从高到低给你一套完整方案。
uname -m
应为 x86_64,32 位系统对 Flutter 支持很差。
sudo apt update && sudo apt upgrade -y
sudo apt install \
curl git unzip xz-utils zip libglu1-mesa \
clang cmake ninja-build pkg-config \
libgtk-3-dev liblzma-dev libstdc++-12-dev
Flutter 在 Debian 上默认是 Linux desktop (GTK),性能远好于 Web 或 Android 模拟器。
检查:
flutter devices
应看到 linux 设备。
❌ 不要用 debug 模式测性能
flutter run --release
或
flutter run --profile
Debug 模式:
Release 模式:
glxinfo | grep "OpenGL renderer"
✅ 正常示例:
OpenGL renderer string: Mesa Intel(R) UHD Graphics
❌ 不好:
llvmpipe
如果是 llvmpipe,说明 没用 GPU。
如果你用 NVIDIA:
sudo apt install nvidia-driver
重启后确认:
nvidia-smi
⚠️ 注意:
登录时选择:
GNOME on Xorg
或:
echo $XDG_SESSION_TYPE
应为 x11
❌ 错误示例:
build() {
return MyWidget(); // 每次都重建
}
✅ 正确:
constProvider / Riverpod 而不是 setState 满天飞const MyText(); // 不会重建
ListView.builder❌ 不用:
Column(children: list)
✅ 使用:
ListView.builder(
itemCount: list.length,
itemBuilder: (_, i) => Item(list[i]),
)
OpacityAnimatedBuilder 包整个页面RepaintBoundaryflutter upgrade
flutter --version
flutter config --enable-linux-desktop
flutter build linux --release
flutter run --profile
然后:
GNOME:
gsettings set org.gnome.desktop.interface enable-animations false
sudo apt install preload
| 现象 | 原因 | 解决方案 |
|---|---|---|
| 卡顿 | debug 模式 | 用 release |
| 掉帧 | 没用 GPU | 安装显卡驱动 |
| 启动慢 | 大量 setState | 优化状态管理 |
| 内存高 | 列表未 builder | ListView.builder |
| 热重载慢 | 大项目 | 拆模块 |
✅ 最佳组合:
如果你愿意,可以告诉我:
我可以直接给你针对你机器的优化方案。