Nalix sử dụng một hệ thống quản lý bộ nhớ được tối ưu cao, được thiết kế để loại bỏ các lần tạm dừng do Garbage Collection (GC) trong các khối lượng công việc thông lượng cao.
Thuê mảng có pool (BufferPoolManager): BufferPoolManager bọc ArrayPool<byte>.Shared với các bộ đếm thuê/trả nguyên tử và chẩn đoán rò rỉ bộ nhớ tùy chọn (BufferOptions.EnableBufferLeakDetection), mang lại 0 B cấp phát trên mọi kích thước payload.
An toàn lease có đếm tham chiếu (BufferLease): BufferLease cung cấp một lớp bọc thuê có pool và đếm tham chiếu (Retain() / Dispose()) (IBufferLease), giữ cho các chu kỳ thuê/giải phóng không cấp phát (0 B) đồng thời ngăn việc trả bộ đệm sớm qua các ranh giới bất đồng bộ.
Tái sử dụng đối tượng: Tái sử dụng các thể hiện của cấu trúc phức tạp (như trạng thái phiên, envelope gói tin và ngữ cảnh xử lý) giúp tránh tình trạng GC Gen 0 bị quá tải.
Kiến trúc đường nhanh lai:
Cache theo luồng (Thread-Local Cache): Tầng đầu tiên, tra cứu không khóa, lưu cache các thể hiện đối tượng trong thread-local storage (ThreadLocalCache<T>) để tái sử dụng với độ trễ cực thấp trên cùng một luồng.
Bucket theo chỉ số kiểu (Type-Indexed Buckets): Khi các slot thread-local trống hoặc đầy, việc lấy đối tượng sẽ chuyển sang tra cứu dựa trên mảng, sử dụng ID kiểu đã biên dịch (PoolType<T>.Id) để bỏ qua việc băm chậm hoặc tra cứu dictionary generic.
Logic reset: Để tránh trạng thái bị ô nhiễm giữa các lần thuê, các đối tượng trong pool triển khai interface reset (IPoolable), tự động xóa dữ liệu và chuẩn bị thể hiện để tái sử dụng khi được trả về pool.