# หน่วยความจำและประสิทธิภาพ (Flutter) > Memory leaks, dispose, DevTools profiler, การ rebuild widget, const constructors, keys - 22 คำถามสัมภาษณ์ - Senior - [คำถามสัมภาษณ์: Flutter](https://sharpskill.dev/th/technologies/flutter/interview-questions.md) ## 1. เมธอดใดต้องถูกเรียกใน dispose() เพื่อหลีกเลี่ยง memory leak กับ AnimationController? **คำตอบ** เมธอด dispose() ของ AnimationController จะปล่อยทรัพยากรที่เกี่ยวข้องกับ animation controller รวมถึง listener และ timer ภายใน หากไม่มีการเรียกนี้ controller จะยังคงทำงานอยู่เบื้องหลังแม้หลังจาก widget ถูกทำลายไปแล้ว ทำให้เกิด memory leak และอาจเกิดข้อผิดพลาดได้หาก controller พยายามอัปเดต widget ที่ถูกลบไปแล้ว ## 2. เครื่องมือใดของ Flutter DevTools ที่ช่วยระบุ memory leak ได้? **คำตอบ** Memory Profiler ใน Flutter DevTools ให้มุมมองโดยละเอียดเกี่ยวกับการใช้หน่วยความจำของแอปพลิเคชัน ช่วยให้สามารถจับ snapshot ของ heap วิเคราะห์อ็อบเจกต์ในหน่วยความจำ ตรวจจับ instance ที่ไม่ถูกเก็บกวาดโดย garbage collector และระบุการอ้างอิงที่ขัดขวางการปล่อยหน่วยความจำ ## 3. จะลดการ rebuild widget ที่ไม่จำเป็นใน Flutter ได้อย่างไร? **คำตอบ** การใช้ const หน้า constructor ของ widget ช่วยให้ framework นำ instance เดิมกลับมาใช้แทนที่จะสร้างใหม่ทุกครั้งที่ build ซึ่งหลีกเลี่ยงการ rebuild ที่ไม่จำเป็นเพราะ Flutter รับรู้ว่า widget ไม่ได้เปลี่ยนแปลง widget แบบ const ถูกสร้างขึ้นในเวลาคอมไพล์และเก็บไว้ในหน่วยความจำเพื่อนำกลับมาใช้ ## มีอีก 19 คำถาม - สาเหตุหลักของ memory leak กับ StreamController คืออะไร? - ควรใช้ Key ประเภทใดเพื่อเพิ่มประสิทธิภาพของ ListView ที่มีรายการซึ่งจัดเรียงใหม่ได้? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Flutter อื่นๆ - [พื้นฐาน Dart](https://sharpskill.dev/th/technologies/flutter/interview-questions/dart-basics.md): 25 คำถาม, Junior - [พื้นฐานภาษา Dart](https://sharpskill.dev/th/technologies/flutter/interview-questions/dart-language-essentials.md): 15 คำถาม, Junior - [พื้นฐาน Flutter](https://sharpskill.dev/th/technologies/flutter/interview-questions/flutter-fundamentals.md): 18 คำถาม, Junior - [วงจรชีวิตของ Widget](https://sharpskill.dev/th/technologies/flutter/interview-questions/widget-lifecycle.md): 20 คำถาม, Junior - [การจัดเก็บข้อมูลในเครื่อง](https://sharpskill.dev/th/technologies/flutter/interview-questions/local-storage.md): 20 คำถาม, Junior - [วงจรชีวิตของแอปพลิเคชัน](https://sharpskill.dev/th/technologies/flutter/interview-questions/app-lifecycle.md): 20 คำถาม, Junior - [Layouts & Constraints](https://sharpskill.dev/th/technologies/flutter/interview-questions/layouts-constraints.md): 24 คำถาม, Mid-Level - [ListView & GridView](https://sharpskill.dev/th/technologies/flutter/interview-questions/listview-gridview.md): 25 คำถาม, Mid-Level - [การนำทางและ Routing](https://sharpskill.dev/th/technologies/flutter/interview-questions/navigation-routing.md): 22 คำถาม, Mid-Level - [การจัดการ State พื้นฐาน](https://sharpskill.dev/th/technologies/flutter/interview-questions/state-management-basics.md): 22 คำถาม, Mid-Level - [Provider Pattern](https://sharpskill.dev/th/technologies/flutter/interview-questions/provider-pattern.md): 18 คำถาม, Mid-Level - [Networking & HTTP](https://sharpskill.dev/th/technologies/flutter/interview-questions/networking-http.md): 20 คำถาม, Mid-Level - [การซีเรียลไลซ์ JSON](https://sharpskill.dev/th/technologies/flutter/interview-questions/json-serialization.md): 20 คำถาม, Mid-Level - [ฐานข้อมูลในเครื่อง](https://sharpskill.dev/th/technologies/flutter/interview-questions/local-database.md): 22 คำถาม, Mid-Level - [ฟอร์มและการตรวจสอบความถูกต้อง](https://sharpskill.dev/th/technologies/flutter/interview-questions/forms-validation.md): 20 คำถาม, Mid-Level - [แอนิเมชัน](https://sharpskill.dev/th/technologies/flutter/interview-questions/animations.md): 20 คำถาม, Mid-Level - [การผสานรวม Firebase](https://sharpskill.dev/th/technologies/flutter/interview-questions/firebase-integration.md): 18 คำถาม, Mid-Level - [การทดสอบยูนิต](https://sharpskill.dev/th/technologies/flutter/interview-questions/unit-testing.md): 20 คำถาม, Mid-Level - [การทดสอบ widget](https://sharpskill.dev/th/technologies/flutter/interview-questions/widget-testing.md): 18 คำถาม, Mid-Level - [การ Build และ Deploy](https://sharpskill.dev/th/technologies/flutter/interview-questions/build-deployment.md): 16 คำถาม, Mid-Level - [การจัดการแพ็กเกจ](https://sharpskill.dev/th/technologies/flutter/interview-questions/package-management.md): 16 คำถาม, Mid-Level - [Streams & RxDart](https://sharpskill.dev/th/technologies/flutter/interview-questions/streams-rxdart.md): 24 คำถาม, Senior - [State Management ขั้นสูง](https://sharpskill.dev/th/technologies/flutter/interview-questions/advanced-state-management.md): 26 คำถาม, Senior - [Flutter Design Patterns](https://sharpskill.dev/th/technologies/flutter/interview-questions/flutter-design-patterns.md): 24 คำถาม, Senior - [การเพิ่มประสิทธิภาพการทำงาน](https://sharpskill.dev/th/technologies/flutter/interview-questions/performance-optimization.md): 26 คำถาม, Senior - [Platform Channels](https://sharpskill.dev/th/technologies/flutter/interview-questions/platform-channels.md): 20 คำถาม, Senior - [Custom Painting](https://sharpskill.dev/th/technologies/flutter/interview-questions/custom-painting.md): 22 คำถาม, Senior - [สถาปัตยกรรมแอปพลิเคชัน Flutter](https://sharpskill.dev/th/technologies/flutter/interview-questions/flutter-app-architecture.md): 22 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/flutter/interview-questions/memory-performance