Flutter

หน่วยความจำและประสิทธิภาพ

Memory leaks, dispose, DevTools profiler, การ rebuild widget, const constructors, keys

22 คำถามสัมภาษณ์·
Senior
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 ถูกสร้างขึ้นในเวลาคอมไพล์และเก็บไว้ในหน่วยความจำเพื่อนำกลับมาใช้

4

สาเหตุหลักของ memory leak กับ StreamController คืออะไร?

5

ควรใช้ Key ประเภทใดเพื่อเพิ่มประสิทธิภาพของ ListView ที่มีรายการซึ่งจัดเรียงใหม่ได้?

+19 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ Flutter อื่นๆ

พื้นฐาน Dart

Junior
25 คำถาม

พื้นฐานภาษา Dart

Junior
15 คำถาม

พื้นฐาน Flutter

Junior
18 คำถาม

วงจรชีวิตของ Widget

Junior
20 คำถาม

การจัดเก็บข้อมูลในเครื่อง

Junior
20 คำถาม

วงจรชีวิตของแอปพลิเคชัน

Junior
20 คำถาม

Layouts & Constraints

Mid-Level
24 คำถาม

ListView & GridView

Mid-Level
25 คำถาม

การนำทางและ Routing

Mid-Level
22 คำถาม

การจัดการ State พื้นฐาน

Mid-Level
22 คำถาม

Provider Pattern

Mid-Level
18 คำถาม

Networking & HTTP

Mid-Level
20 คำถาม

การซีเรียลไลซ์ JSON

Mid-Level
20 คำถาม

ฐานข้อมูลในเครื่อง

Mid-Level
22 คำถาม

ฟอร์มและการตรวจสอบความถูกต้อง

Mid-Level
20 คำถาม

แอนิเมชัน

Mid-Level
20 คำถาม

การผสานรวม Firebase

Mid-Level
18 คำถาม

การทดสอบยูนิต

Mid-Level
20 คำถาม

การทดสอบ widget

Mid-Level
18 คำถาม

การ Build และ Deploy

Mid-Level
16 คำถาม

การจัดการแพ็กเกจ

Mid-Level
16 คำถาม

Streams & RxDart

Senior
24 คำถาม

State Management ขั้นสูง

Senior
26 คำถาม

Flutter Design Patterns

Senior
24 คำถาม

การเพิ่มประสิทธิภาพการทำงาน

Senior
26 คำถาม

Platform Channels

Senior
20 คำถาม

Custom Painting

Senior
22 คำถาม

สถาปัตยกรรมแอปพลิเคชัน Flutter

Senior
22 คำถาม

เชี่ยวชาญ Flutter สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี