หน่วยความจำและประสิทธิภาพ
Memory leaks, dispose, DevTools profiler, การ rebuild widget, const constructors, keys
1เมธอดใดต้องถูกเรียกใน dispose() เพื่อหลีกเลี่ยง memory leak กับ AnimationController?
เมธอดใดต้องถูกเรียกใน dispose() เพื่อหลีกเลี่ยง memory leak กับ AnimationController?
คำตอบ
เมธอด dispose() ของ AnimationController จะปล่อยทรัพยากรที่เกี่ยวข้องกับ animation controller รวมถึง listener และ timer ภายใน หากไม่มีการเรียกนี้ controller จะยังคงทำงานอยู่เบื้องหลังแม้หลังจาก widget ถูกทำลายไปแล้ว ทำให้เกิด memory leak และอาจเกิดข้อผิดพลาดได้หาก controller พยายามอัปเดต widget ที่ถูกลบไปแล้ว
2เครื่องมือใดของ Flutter DevTools ที่ช่วยระบุ memory leak ได้?
เครื่องมือใดของ Flutter DevTools ที่ช่วยระบุ memory leak ได้?
คำตอบ
Memory Profiler ใน Flutter DevTools ให้มุมมองโดยละเอียดเกี่ยวกับการใช้หน่วยความจำของแอปพลิเคชัน ช่วยให้สามารถจับ snapshot ของ heap วิเคราะห์อ็อบเจกต์ในหน่วยความจำ ตรวจจับ instance ที่ไม่ถูกเก็บกวาดโดย garbage collector และระบุการอ้างอิงที่ขัดขวางการปล่อยหน่วยความจำ
3จะลดการ rebuild widget ที่ไม่จำเป็นใน Flutter ได้อย่างไร?
จะลดการ rebuild widget ที่ไม่จำเป็นใน Flutter ได้อย่างไร?
คำตอบ
การใช้ const หน้า constructor ของ widget ช่วยให้ framework นำ instance เดิมกลับมาใช้แทนที่จะสร้างใหม่ทุกครั้งที่ build ซึ่งหลีกเลี่ยงการ rebuild ที่ไม่จำเป็นเพราะ Flutter รับรู้ว่า widget ไม่ได้เปลี่ยนแปลง widget แบบ const ถูกสร้างขึ้นในเวลาคอมไพล์และเก็บไว้ในหน่วยความจำเพื่อนำกลับมาใช้
สาเหตุหลักของ memory leak กับ StreamController คืออะไร?
ควรใช้ Key ประเภทใดเพื่อเพิ่มประสิทธิภาพของ ListView ที่มีรายการซึ่งจัดเรียงใหม่ได้?
+19 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Flutter อื่นๆ
พื้นฐาน Dart
พื้นฐานภาษา Dart
พื้นฐาน Flutter
วงจรชีวิตของ Widget
การจัดเก็บข้อมูลในเครื่อง
วงจรชีวิตของแอปพลิเคชัน
Layouts & Constraints
ListView & GridView
การนำทางและ Routing
การจัดการ State พื้นฐาน
Provider Pattern
Networking & HTTP
การซีเรียลไลซ์ JSON
ฐานข้อมูลในเครื่อง
ฟอร์มและการตรวจสอบความถูกต้อง
แอนิเมชัน
การผสานรวม Firebase
การทดสอบยูนิต
การทดสอบ widget
การ Build และ Deploy
การจัดการแพ็กเกจ
Streams & RxDart
State Management ขั้นสูง
Flutter Design Patterns
การเพิ่มประสิทธิภาพการทำงาน
Platform Channels
Custom Painting
สถาปัตยกรรมแอปพลิเคชัน Flutter
เชี่ยวชาญ Flutter สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี