Benchmarks Benchmark xử lý và đóng khung dữ liệu Trên trang này Chỉ số hiệu năng chi tiết cho các pipeline xử lý và biến đổi dữ liệu của Nalix, bao gồm nén LZ4 và các biến đổi đóng khung.
Pipeline xử lý khung#
Pipeline khung xử lý toàn bộ quá trình tuần tự hóa đi ra (nén + mã hóa) và giải tuần tự hóa đi vào (giải mã + giải nén), từ đầu đến cuối.
Hiệu năng pipeline (Payload Size = 64)#
Phương thức PayloadSize Mean Error StdDev P95 Gen0 Cấp phát ProcessOutbound_CompressOnly 64 172.0 ns 1.21 ns 1.40 ns 173.7 ns - 0 B ProcessOutbound_EncryptOnly 64 571.1 ns 3.56 ns 3.96 ns 575.9 ns 0.0048 208 B ProcessOutbound_Full 64 698.7 ns 4.84 ns 5.58 ns 707.0 ns 0.0048 208 B ProcessInbound_DecompressOnly 64 172.0 ns 1.84 ns 2.12 ns 174.9 ns - 0 B ProcessInbound_DecryptOnly 64 1,160.3 ns 8.00 ns 9.21 ns 1,173.9 ns 0.0095 416 B ProcessInbound_Full 64 1,287.7 ns 8.90 ns 9.53 ns 1,300.5 ns 0.0134 544 B
Hiệu năng pipeline (Payload Size = 512)#
Phương thức PayloadSize Mean Error StdDev P95 Gen0 Cấp phát ProcessOutbound_CompressOnly 512 441.0 ns 3.56 ns 4.09 ns 447.8 ns - 0 B ProcessOutbound_EncryptOnly 512 1,177.2 ns 7.53 ns 8.67 ns 1,192.2 ns 0.0286 1104 B ProcessOutbound_Full 512 1,530.4 ns 9.24 ns 10.64 ns 1,544.5 ns 0.0286 1104 B ProcessInbound_DecompressOnly 512 443.6 ns 4.05 ns 4.50 ns 450.5 ns - 0 B ProcessInbound_DecryptOnly 512 2,324.8 ns 17.66 ns 19.63 ns 2,352.5 ns 0.0572 2208 B ProcessInbound_Full 512 2,858.6 ns 24.84 ns 28.60 ns 2,904.0 ns 0.0839 3232 B
Hiệu năng pipeline (Payload Size = 4096)#
Phương thức PayloadSize Mean Error StdDev P95 Gen0 Gen1 Cấp phát ProcessOutbound_CompressOnly 4096 1,182.0 ns 8.85 ns 10.19 ns 1,197.1 ns - - 0 B ProcessOutbound_EncryptOnly 4096 6,172.2 ns 40.13 ns 44.60 ns 6,228.2 ns 0.2365 0.0076 8272 B ProcessOutbound_Full 4096 7,304.3 ns 51.40 ns 57.13 ns 7,383.6 ns 0.2365 - 8272 B ProcessInbound_DecompressOnly 4096 1,205.0 ns 7.17 ns 7.97 ns 1,215.2 ns - - 0 B ProcessInbound_DecryptOnly 4096 12,472.2 ns 98.50 ns 113.43 ns 12,648.5 ns 0.4730 0.0153 16544 B ProcessInbound_Full 4096 14,019.7 ns 72.64 ns 83.65 ns 14,148.0 ns 0.6866 0.0305 24736 B
Đằng sau thiết kế#
Tỷ lệ tuyến tính : Độ trễ tăng có thể dự đoán được theo kích thước payload.
Pipeline xử lý liên tục : Xử lý đi ra truyền dữ liệu trực tiếp, cho phép đóng khung từ dưới micro giây đến vài micro giây với các kích thước payload phổ biến (ví dụ 1.53 μs cho payload 512B).
Biến đổi khung#
Các transformer riêng lẻ trong pipeline xử lý việc nén/giải nén và mã hóa/giải mã.
Phương thức PayloadSize Mean Error StdDev P95 Cấp phát Encrypt_AEAD_ChaCha20Poly1305 64 610.8 ns 3.37 ns 3.74 ns 616.3 ns 0 B Decrypt_AEAD_ChaCha20Poly1305 64 1,164.5 ns 6.01 ns 6.92 ns 1,177.1 ns 0 B Encrypt_AEAD_Salsa20Poly1305 64 560.2 ns 5.67 ns 6.30 ns 571.0 ns 0 B Decrypt_AEAD_Salsa20Poly1305 64 1,062.4 ns 5.68 ns 6.55 ns 1,070.1 ns 0 B Encrypt_Symmetric_ChaCha20 64 338.2 ns 1.51 ns 1.61 ns 340.9 ns 0 B Decrypt_Symmetric_ChaCha20 64 578.4 ns 3.50 ns 3.74 ns 584.3 ns 0 B Encrypt_Symmetric_Salsa20 64 317.7 ns 1.98 ns 2.20 ns 320.9 ns 0 B Decrypt_Symmetric_Salsa20 64 537.4 ns 4.06 ns 4.51 ns 545.0 ns 0 B Compress_LZ4 64 175.7 ns 0.80 ns 0.92 ns 176.9 ns 0 B Decompress_LZ4 64 242.5 ns 2.03 ns 2.34 ns 245.3 ns 0 B
Phương thức PayloadSize Mean Error StdDev P95 Cấp phát Encrypt_AEAD_ChaCha20Poly1305 1024 1,652.3 ns 9.13 ns 10.52 ns 1,665.8 ns 0 B Decrypt_AEAD_ChaCha20Poly1305 1024 3,265.3 ns 17.39 ns 19.33 ns 3,295.6 ns 0 B Encrypt_AEAD_Salsa20Poly1305 1024 2,760.1 ns 37.46 ns 38.47 ns 2,830.6 ns 0 B Decrypt_AEAD_Salsa20Poly1305 1024 5,463.3 ns 51.18 ns 58.94 ns 5,553.4 ns 0 B Encrypt_Symmetric_ChaCha20 1024 907.0 ns 1.72 ns 1.77 ns 909.5 ns 0 B Decrypt_Symmetric_ChaCha20 1024 1,726.8 ns 4.48 ns 4.97 ns 1,735.4 ns 0 B Encrypt_Symmetric_Salsa20 1024 2,020.7 ns 8.57 ns 9.52 ns 2,033.1 ns 0 B Decrypt_Symmetric_Salsa20 1024 3,933.9 ns 22.79 ns 26.24 ns 3,980.6 ns 0 B Compress_LZ4 1024 608.1 ns 4.36 ns 5.03 ns 614.5 ns 0 B Decompress_LZ4 1024 674.4 ns 4.64 ns 5.15 ns 681.2 ns 0 B
Vì sao xử lý dữ liệu của Nalix?#
Biến đổi không cấp phát : Thay vì tạo các mảng rác trung gian, mã hóa và nén hoạt động trực tiếp trên các bộ đệm thuê từ BufferPoolManager bằng Span<byte>, nên các thao tác transformer không tiêu tốn byte heap nào (0 B).
Tốc độ thân thiện với phần cứng : Mã hóa đối xứng 1 KB dữ liệu mất khoảng 900 ns với ChaCha20 và khoảng 2.0 μs với Salsa20.
Nén LZ4 nội tuyến : Nén LZ4 tích hợp sẵn kết hợp liền mạch với pipeline bộ đệm, thực hiện nén 1 KB trong khoảng 608 ns và nén 64 B trong dưới 176 ns.