Data Processing & Framing Benchmarks

Read time 6 minutes
On this page

Detailed performance metrics for the Nalix data processing and transformation pipelines, including LZ4 compression and framing transforms.

Frame Processing Pipeline

The frame pipeline handles end-to-end outbound serialization (compression + encryption) and inbound deserialization (decryption + decompression) processes.

Pipeline Performance (Payload Size = 64)

MethodPayloadSizeMeanErrorStdDevP95Gen0Allocated
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

Pipeline Performance (Payload Size = 512)

MethodPayloadSizeMeanErrorStdDevP95Gen0Allocated
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

Pipeline Performance (Payload Size = 4096)

MethodPayloadSizeMeanErrorStdDevP95Gen0Gen1Allocated
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

Behind the design

  • Linear Scaling: Latency scales predictably relative to the payload size.
  • Pipelined Execution: Outbound processing streams data directly, enabling sub-microsecond to low-microsecond framing for common payload sizes (e.g. 1.53 μs for a 512B payload).

Frame Transformations

Individual pipeline transformers handle compression/decompression and encryption/decryption routines.

Transformer Performance (Payload Size = 64)

MethodPayloadSizeMeanErrorStdDevP95Allocated
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

Transformer Performance (Payload Size = 1024)

MethodPayloadSizeMeanErrorStdDevP95Allocated
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

Why Nalix Data Processing?

  • Zero-Allocation Transforms: Rather than creating intermediate garbage arrays, encryption and compression operate directly on rentals from BufferPoolManager using Span<byte>, consuming 0 B of heap allocation for transformer operations.
  • Hardware-Friendly Speeds: Symmetric encryption of 1 KB of data executes in ~900 ns for ChaCha20 and ~2.0 μs for Salsa20.
  • LZ4 Inline Compression: Built-in LZ4 compression integrates seamlessly with the buffer pipeline, performing a 1 KB compression in ~608 ns and 64 B compression in under 176 ns.