Bí quyết tối ưu hiệu năng Flutter đạt 60fps/120fps không bị giật lag (Jank)

2026-07-24 8 phút đọcBởi Uwmee Software

Hiện tượng giao diện bị giật khựng (Jank) khi cuộn danh sách hay chuyển màn hình trong Flutter xảy ra khi thời gian Render 1 khung hình vượt quá **16ms (đối với màn 60Hz)** hoặc **8ms (đối với màn 120Hz)**. 7 kỹ thuật dưới đây sẽ giúp ứng dụng Flutter của bạn chạy xé gió!

1. 7 Kỹ thuật tối ưu mượt 120fps cho Flutter

1. Sử dụng từ khóa const tối đa cho các Widget

Từ khóa const bảo với Flutter Engine rằng Widget này không bao giờ thay đổi, giúp Flutter **bỏ qua việc khởi tạo lại Widget** khi cây Widget Parent bị re-render.

2. Sử dụng ListView.builder thay cho ListView thường

ListView.builder chỉ khởi tạo các phần tử **đang thực sự hiển thị trên màn hình**, giúp tiết kiệm 90% bộ nhớ RAM khi hiển thị danh sách hàng ngàn sản phẩm.

3. Bọc các Widget Animation phức tạp bằng RepaintBoundary

Sử dụng RepaintBoundary để cách ly vùng Widget có Animation, ngăn không cho hiện tượng vẽ lại (Repaint) lan ra các Widget xung quanh.

4. Tách nhỏ Widget thành các Stateless/StatefulComponent riêng

Tránh viết hàm build() dài hàng trăm dòng chứa nhiều setState() làm re-render toàn bộ màn hình lớn.

5. Giải phóng bộ nhớ trong hàm dispose()

Bắt buộc gọi dispose() cho các AnimationController, TextEditingController, StreamSubscription để chống tràn bộ nhớ (Memory Leak).

6. Nén và Cache hình ảnh bằng CachedNetworkImage

Sử dụng memCacheWidthmemCacheHeight để giải nén ảnh đúng kích thước hiển thị trên màn hình (xem bài tối ưu dung lượng hình ảnh).

7. Sử dụng Flutter DevTools Profiler phát hiện Jank

Mở Flutter DevTools → Performance tab để soi các dòng cột màu đỏ (khung hình bị giật) và tìm đúng Widget gây nghẽn luồng UI Thread.

Kết luận

Tối ưu hiệu năng là ranh giới giữa một ứng dụng bình dân và một sản phẩm cao cấp đạt chuẩn 5 sao. Uwmee Software cam kết 100% ứng dụng Flutter được tối ưu mượt 60fps/120fps trước khi bàn giao. Đọc thêm bài viết tối ưu Android Vitals.

Cần vượt Closed Testing nhanh chóng?

Đội 12+ tester thật của Uwmee tương tác hằng ngày đủ 14 ngày — trọn gói chỉ 300.000đ, chạy lại miễn phí nếu không đạt.

Câu hỏi thường gặp