.NET

Memory Management & GC

Garbage Collection, các thế hệ, finalization, IDisposable, câu lệnh using, rò rỉ bộ nhớ, profiling

22 câu hỏi phỏng vấn·
Senior
1

Garbage Collector (GC) trong .NET là gì?

Câu trả lời

Garbage Collector là một cơ chế quản lý bộ nhớ tự động giải phóng các đối tượng không còn được sử dụng trên managed heap. Nó chạy tự động ở chế độ nền để ngăn rò rỉ bộ nhớ, khác với C/C++ nơi bộ nhớ phải được giải phóng thủ công. GC phân tích các tham chiếu đối tượng và thu hồi những đối tượng không còn truy cập được từ root của ứng dụng.

2

Ba thế hệ của Garbage Collector trong .NET là gì?

Câu trả lời

GC của .NET sử dụng ba thế hệ: Gen0 (đối tượng mới, tồn tại ngắn, được thu gom thường xuyên), Gen1 (đối tượng có tuổi thọ trung bình, vùng đệm giữa Gen0 và Gen2) và Gen2 (đối tượng tồn tại lâu, ít khi được thu gom vì tốn kém). Hệ thống theo thế hệ này tối ưu hiệu năng bằng cách thu gom trước các đối tượng ngắn hạn (Gen0) chiếm 80-90% số đối tượng, đồng thời tránh quét thường xuyên các đối tượng bền vững (Gen2).

3

Large Object Heap (LOH) trong .NET là gì?

Câu trả lời

Large Object Heap là một vùng bộ nhớ riêng dành cho các đối tượng từ 85 KB trở lên, về mặt logic thuộc Gen2. Khác với heap tiêu chuẩn được nén (compaction) thường xuyên, LOH KHÔNG được nén theo mặc định để tránh chi phí sao chép các đối tượng lớn. Điều này có thể gây phân mảnh bộ nhớ. Kể từ .NET 4.5.1, việc nén LOH có thể được bật thủ công bằng GCSettings.LargeObjectHeapCompactionMode.

4

Vai trò của pattern IDisposable trong .NET là gì?

5

Câu lệnh using trong C# làm gì?

+19 câu hỏi phỏng vấn

Nắm vững .NET cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí