
Memory Management & GC
Garbage Collection, รุ่น (generations), การ finalization, IDisposable, using statement, การรั่วไหลของหน่วยความจำ, การ profiling
1Garbage Collector (GC) ใน .NET คืออะไร?
Garbage Collector (GC) ใน .NET คืออะไร?
คำตอบ
Garbage Collector คือกลไกการจัดการหน่วยความจำแบบอัตโนมัติที่คืนหน่วยความจำของออบเจ็กต์ที่ไม่ได้ใช้งานบน managed heap มันทำงานโดยอัตโนมัติในเบื้องหลังเพื่อป้องกันการรั่วไหลของหน่วยความจำ ต่างจาก C/C++ ที่ต้องคืนหน่วยความจำด้วยตนเอง GC จะวิเคราะห์การอ้างอิงของออบเจ็กต์และเก็บกวาดออบเจ็กต์ที่ไม่สามารถเข้าถึงได้จาก root ของแอปพลิเคชันอีกต่อไป
2Garbage Collector ใน .NET มีสามรุ่น (generations) อะไรบ้าง?
Garbage Collector ใน .NET มีสามรุ่น (generations) อะไรบ้าง?
คำตอบ
GC ของ .NET ใช้สามรุ่น: Gen0 (ออบเจ็กต์ใหม่ที่มีอายุสั้น เก็บกวาดบ่อย), Gen1 (ออบเจ็กต์อายุปานกลาง เป็นเขตกันชนระหว่าง Gen0 และ Gen2) และ Gen2 (ออบเจ็กต์อายุยาว เก็บกวาดไม่บ่อยเพราะมีต้นทุนสูง) ระบบแบบแบ่งรุ่นนี้ช่วยเพิ่มประสิทธิภาพโดยเก็บกวาดออบเจ็กต์อายุสั้น (Gen0) ที่คิดเป็น 80-90% ของออบเจ็กต์ก่อน ในขณะที่หลีกเลี่ยงการสแกนออบเจ็กต์ที่คงอยู่นาน (Gen2) บ่อยครั้ง
3Large Object Heap (LOH) ใน .NET คืออะไร?
Large Object Heap (LOH) ใน .NET คืออะไร?
คำตอบ
Large Object Heap คือพื้นที่หน่วยความจำแยกต่างหากสำหรับออบเจ็กต์ขนาด 85 KB ขึ้นไป ซึ่งในเชิงตรรกะอยู่ใน Gen2 ต่างจาก heap มาตรฐานที่ถูก compaction เป็นประจำ LOH จะไม่ถูก compaction โดยค่าเริ่มต้นเพื่อหลีกเลี่ยงต้นทุนในการคัดลอกออบเจ็กต์ขนาดใหญ่ ซึ่งอาจทำให้เกิดการแตกกระจาย (fragmentation) ของหน่วยความจำ ตั้งแต่ .NET 4.5.1 เป็นต้นมา สามารถเปิดใช้งานการ compaction ของ LOH ด้วยตนเองได้ด้วย GCSettings.LargeObjectHeapCompactionMode
บทบาทของ pattern IDisposable ใน .NET คืออะไร?
คำสั่ง using ใน C# ทำหน้าที่อะไร?
+19 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ .NET อื่นๆ
พื้นฐาน C#
LINQ & Delegates
พื้นฐานสำคัญของภาษา C#
พื้นฐาน ASP.NET Core
วงจรชีวิตของ request ใน ASP.NET Core
Configuration & Settings
วงจรชีวิตของแอปพลิเคชัน
Dependency Injection
Entity Framework Core
Minimal APIs
การพัฒนา Web API
Async ใน ASP.NET Core
Authentication & Authorization
HttpClient & Networking
การซีเรียลไลซ์ JSON
Entity Framework Core ขั้นสูง
ฟีเจอร์ขั้นสูงของ C#
Clean Architecture
Logging, Monitoring & Observability
Unit Testing และ xUnit
การทดสอบแบบบูรณาการ
Docker & Containerization
การจัดการแพ็กเกจ NuGet
การเขียนโปรแกรมแบบรีแอกทีฟ
Async/await และรูปแบบ
.NET Design Patterns
การเพิ่มประสิทธิภาพการทำงาน
ความปลอดภัยและ Best Practices
SignalR และเรียลไทม์
สถาปัตยกรรม Microservices
เชี่ยวชาญ .NET สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี