Tài liệu

Benchmark xử lý và đóng khung dữ liệu

Thời gian đọc 6 phút
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ứcPayloadSizeMeanErrorStdDevP95Gen0Cấp phát
ProcessOutbound_CompressOnly64172.0 ns1.21 ns1.40 ns173.7 ns-0 B
ProcessOutbound_EncryptOnly64571.1 ns3.56 ns3.96 ns575.9 ns0.0048208 B
ProcessOutbound_Full64698.7 ns4.84 ns5.58 ns707.0 ns0.0048208 B
ProcessInbound_DecompressOnly64172.0 ns1.84 ns2.12 ns174.9 ns-0 B
ProcessInbound_DecryptOnly641,160.3 ns8.00 ns9.21 ns1,173.9 ns0.0095416 B
ProcessInbound_Full641,287.7 ns8.90 ns9.53 ns1,300.5 ns0.0134544 B

Hiệu năng pipeline (Payload Size = 512)

Phương thứcPayloadSizeMeanErrorStdDevP95Gen0Cấp phát
ProcessOutbound_CompressOnly512441.0 ns3.56 ns4.09 ns447.8 ns-0 B
ProcessOutbound_EncryptOnly5121,177.2 ns7.53 ns8.67 ns1,192.2 ns0.02861104 B
ProcessOutbound_Full5121,530.4 ns9.24 ns10.64 ns1,544.5 ns0.02861104 B
ProcessInbound_DecompressOnly512443.6 ns4.05 ns4.50 ns450.5 ns-0 B
ProcessInbound_DecryptOnly5122,324.8 ns17.66 ns19.63 ns2,352.5 ns0.05722208 B
ProcessInbound_Full5122,858.6 ns24.84 ns28.60 ns2,904.0 ns0.08393232 B

Hiệu năng pipeline (Payload Size = 4096)

Phương thứcPayloadSizeMeanErrorStdDevP95Gen0Gen1Cấp phát
ProcessOutbound_CompressOnly40961,182.0 ns8.85 ns10.19 ns1,197.1 ns--0 B
ProcessOutbound_EncryptOnly40966,172.2 ns40.13 ns44.60 ns6,228.2 ns0.23650.00768272 B
ProcessOutbound_Full40967,304.3 ns51.40 ns57.13 ns7,383.6 ns0.2365-8272 B
ProcessInbound_DecompressOnly40961,205.0 ns7.17 ns7.97 ns1,215.2 ns--0 B
ProcessInbound_DecryptOnly409612,472.2 ns98.50 ns113.43 ns12,648.5 ns0.47300.015316544 B
ProcessInbound_Full409614,019.7 ns72.64 ns83.65 ns14,148.0 ns0.68660.030524736 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ã.

Hiệu năng transformer (Payload Size = 64)

Phương thứcPayloadSizeMeanErrorStdDevP95Cấp phát
Encrypt_AEAD_ChaCha20Poly130564610.8 ns3.37 ns3.74 ns616.3 ns0 B
Decrypt_AEAD_ChaCha20Poly1305641,164.5 ns6.01 ns6.92 ns1,177.1 ns0 B
Encrypt_AEAD_Salsa20Poly130564560.2 ns5.67 ns6.30 ns571.0 ns0 B
Decrypt_AEAD_Salsa20Poly1305641,062.4 ns5.68 ns6.55 ns1,070.1 ns0 B
Encrypt_Symmetric_ChaCha2064338.2 ns1.51 ns1.61 ns340.9 ns0 B
Decrypt_Symmetric_ChaCha2064578.4 ns3.50 ns3.74 ns584.3 ns0 B
Encrypt_Symmetric_Salsa2064317.7 ns1.98 ns2.20 ns320.9 ns0 B
Decrypt_Symmetric_Salsa2064537.4 ns4.06 ns4.51 ns545.0 ns0 B
Compress_LZ464175.7 ns0.80 ns0.92 ns176.9 ns0 B
Decompress_LZ464242.5 ns2.03 ns2.34 ns245.3 ns0 B

Hiệu năng transformer (Payload Size = 1024)

Phương thứcPayloadSizeMeanErrorStdDevP95Cấp phát
Encrypt_AEAD_ChaCha20Poly130510241,652.3 ns9.13 ns10.52 ns1,665.8 ns0 B
Decrypt_AEAD_ChaCha20Poly130510243,265.3 ns17.39 ns19.33 ns3,295.6 ns0 B
Encrypt_AEAD_Salsa20Poly130510242,760.1 ns37.46 ns38.47 ns2,830.6 ns0 B
Decrypt_AEAD_Salsa20Poly130510245,463.3 ns51.18 ns58.94 ns5,553.4 ns0 B
Encrypt_Symmetric_ChaCha201024907.0 ns1.72 ns1.77 ns909.5 ns0 B
Decrypt_Symmetric_ChaCha2010241,726.8 ns4.48 ns4.97 ns1,735.4 ns0 B
Encrypt_Symmetric_Salsa2010242,020.7 ns8.57 ns9.52 ns2,033.1 ns0 B
Decrypt_Symmetric_Salsa2010243,933.9 ns22.79 ns26.24 ns3,980.6 ns0 B
Compress_LZ41024608.1 ns4.36 ns5.03 ns614.5 ns0 B
Decompress_LZ41024674.4 ns4.64 ns5.15 ns681.2 ns0 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.