Flutter

Bộ nhớ & Hiệu năng

Memory leaks, dispose, DevTools profiler, widget rebuild, const constructors, keys

22 câu hỏi phỏng vấn·
Senior
1

Phương thức nào phải được gọi trong dispose() để tránh rò rỉ bộ nhớ với AnimationController?

Câu trả lời

Phương thức dispose() của AnimationController giải phóng các tài nguyên liên quan đến controller animation, bao gồm các listener và timer nội bộ. Không có lời gọi này, controller vẫn tiếp tục chạy ngầm ngay cả sau khi widget bị hủy, gây ra rò rỉ bộ nhớ và có thể gây lỗi nếu controller cố cập nhật một widget đã bị xóa.

2

Công cụ Flutter DevTools nào cho phép xác định rò rỉ bộ nhớ?

Câu trả lời

Memory Profiler trong Flutter DevTools cung cấp cái nhìn chi tiết về việc sử dụng bộ nhớ của ứng dụng. Nó cho phép chụp snapshot của heap, phân tích các đối tượng trong bộ nhớ, phát hiện các instance không được garbage collector thu hồi và xác định các tham chiếu ngăn cản việc giải phóng bộ nhớ.

3

Làm thế nào để giảm các lần rebuild widget không cần thiết trong Flutter?

Câu trả lời

Sử dụng const trước các constructor của widget cho phép framework tái sử dụng cùng một instance thay vì tạo mới ở mỗi lần build. Điều này tránh các lần rebuild không cần thiết vì Flutter nhận ra widget không thay đổi. Các widget const được tạo tại thời điểm biên dịch và được giữ trong bộ nhớ để tái sử dụng.

4

Nguyên nhân chính gây rò rỉ bộ nhớ với StreamController là gì?

5

Nên dùng loại Key nào để tối ưu hiệu năng của ListView với các phần tử có thể sắp xếp lại?

+19 câu hỏi phỏng vấn

Nắm vững Flutter cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí