Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 03: A Little More Detail - Coggle Diagram
Chapter 03:
A Little More Detail
Segments
Phân đoạn chỉ là đơn vị cấp phát bộ nhớ; khi GC cần mở rộng đống, nó yêu cầu một phân đoạn bổ sung.
Kích thước phân đoạn là động, được điều chỉnh theo thời gian chạy và phụ thuộc vào chế độ GC của bạn đang chạy: Máy trạm hoặc Máy chủ GC
Garbage Collection Performance
Workstation GC mode
Concurrent Workstation GC
GC đồng thời có một luồng riêng để GC chạy trên đó, có nghĩa là ứng dụng có thể tiếp tục thực thi trong khi GC chạy.
Background Workstation GC mode
Với GC nền, GC thế hệ 0 hoặc thế hệ 1 có thể được kích hoạt cho các đối tượng trong khi một GC Gen 2 đầy đủ đang được tiến hành.
Sự cân bằng giữa hiệu suất và hiệu suất heap là chìa khóa cho sự phát triển của một số chế độ mà GC có thể chạy
Configuring the GC
Tất cả những gì cần làm để cấu hình GC là thay đổi tệp cấu hình.
Server GC mode
Với GC nền, GC thế hệ 0 hoặc thế hệ 1 có thể được kích hoạt cho các đối tượng trong khi một GC Gen 2 đầy đủ đang được tiến hành.
Sự cân bằng giữa hiệu suất và hiệu suất heap là chìa khóa cho sự phát triển của một số chế độ mà GC có thể chạy
Page
Free: Khối bộ nhớ không có tham chiếu đến nó và có sẵn để cấp phát.
Reserved: Khối bộ nhớ có sẵn để bạn sử dụng và không thể được sử dụng cho bất kỳ yêu cầu cấp phát nào khác. Tuy nhiên, không thể lưu trữ dữ liệu vào khối bộ này cho đến khi nó được commit.
Committed: Khối bộ nhớ được gán cho bộ nhớ vật lý.
Runtime GC Latency Control
• GCLatencyMode.Batch - được thiết kế để cung cấp thông lượng và hiệu suất tối đa đối với các phần của ứng dụng mà khả năng phản hồi của giao diện người dùng không quan trọng.
• GCLatencyMode.LowLatency - chế độ này làm giảm tác động của GC đến mức tối thiểu, điều này lý tưởng cho những thời điểm khi những thứ như khả năng đáp ứng giao diện người dùng là quan trọng, ví dụ: hoạt hình.
• GCLatencyMode.Interactive - Workstation GC với Concurrency được bật, cân bằng giữa hiệu quả GC và khả năng phản hồi của ứng dụng
GC Notifications
Đăng ký nhận thông báo GC đầy đủ
Xác định khi nào một GC đầy đủ đang đến gần
Xác định khi nào một GC đầy đủ đã kết thúc
Hủy đăng ký để nhận thông báo GC đầy đủ
Weak References: Các tham chiếu đối tượng yếu cho phép bạn giữ các đối tượng (vì chúng là một nguồn khác của GC gốc), nhưng vẫn cho phép chúng được thu thập nếu GC cần
GC Handles
Normal - theo dõi các đối tượng heap tiêu chuẩn
Weak - được sử dụng để theo dõi các tham chiếu ngắn yếu
Weak Track Resurrection - được sử dụng cho các tham chiếu dài yếu
Pinned - được sử dụng để sửa một đối tượng tại một địa chỉ cụ thể trong bộ nhớ
Object pinning
Có thể tạo các Xử lý GC trực tiếp trong mã và do đó có thể sử dụng chúng để tạo các đường tham chiếu được pinning cho các đối tượng mà cần chuyển tới mã không được quản lý
Problems with object pinning
Gây ra phân mảnh SOH
Nếu một đối tượng được ghim trong GC thì theo định nghĩa, nó không thể được định vị lại
Giảm hiệu quả của việc nén chặt, để lại khoảng trống trong heap
Nên ghim trong một thời gian rất ngắn và sau đó thả ra