
การเพิ่มประสิทธิภาพการทำงาน
Profiling, BenchmarkDotNet, memory allocation, boxing/unboxing, Span<T>, แนวทางปฏิบัติที่ดีที่สุดด้านประสิทธิภาพ
1ข้อได้เปรียบหลักของ BenchmarkDotNet เหนือ Stopwatch ธรรมดาในการวัดประสิทธิภาพคืออะไร?
ข้อได้เปรียบหลักของ BenchmarkDotNet เหนือ Stopwatch ธรรมดาในการวัดประสิทธิภาพคืออะไร?
คำตอบ
BenchmarkDotNet จะทำ warm-up วัดหลายรอบพร้อมการทำให้เสถียรทางสถิติ และหลีกเลี่ยงอคติของ JIT และ GC ส่วน Stopwatch ธรรมดาอาจให้ผลลัพธ์ที่ไม่เป็นตัวแทนเพราะไม่ได้ควบคุมปัจจัยเหล่านี้ BenchmarkDotNet ยังให้เมตริกที่ละเอียดเช่นการจัดสรรหน่วยความจำต่อการดำเนินการด้วย
2เครื่องมือของ Microsoft ใดที่แนะนำสำหรับวิเคราะห์การจัดสรรหน่วยความจำและระบุ memory leak ในการใช้งานจริง?
เครื่องมือของ Microsoft ใดที่แนะนำสำหรับวิเคราะห์การจัดสรรหน่วยความจำและระบุ memory leak ในการใช้งานจริง?
คำตอบ
dotMemory ของ JetBrains และ PerfView ของ Microsoft เป็นเครื่องมือที่แนะนำสำหรับการ profiling หน่วยความจำใน .NET โดย PerfView นั้นฟรี เป็น open-source และสามารถวิเคราะห์ heap allocations, stack traces และเหตุการณ์ GC ได้ เหมาะอย่างยิ่งสำหรับการวินิจฉัย memory leak ในการใช้งานจริงโดยไม่มี overhead มากนัก
3จะระบุการจัดสรรหน่วยความจำที่ซ่อนอยู่ในเมธอด LINQ อย่าง FirstOrDefault() ได้อย่างไร?
จะระบุการจัดสรรหน่วยความจำที่ซ่อนอยู่ในเมธอด LINQ อย่าง FirstOrDefault() ได้อย่างไร?
คำตอบ
การใช้ BenchmarkDotNet พร้อมแอตทริบิวต์ MemoryDiagnoser ช่วยให้เห็นการจัดสรรต่อการดำเนินการ lambda ของ LINQ สร้างการจัดสรรที่ซ่อนอยู่ผ่าน delegate การแทนที่ด้วยลูป foreach ธรรมดาจะกำจัดการจัดสรรเหล่านี้ PerfView ยังสามารถจับ stack trace ของการจัดสรรเพื่อระบุแหล่งที่มาได้
ใน BenchmarkDotNet ควรใช้แอตทริบิวต์ใดเพื่อวัดประสิทธิภาพ CPU และระบุ hotspot ของโค้ด?
จะตีความผลลัพธ์ BenchmarkDotNet ที่แสดง Mean: 125.3 ns, StdDev: 45.2 ns อย่างไร?
+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
Memory Management & GC
การเขียนโปรแกรมแบบรีแอกทีฟ
Async/await และรูปแบบ
.NET Design Patterns
ความปลอดภัยและ Best Practices
SignalR และเรียลไทม์
สถาปัตยกรรม Microservices
เชี่ยวชาญ .NET สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี