← Benchmarks

Benchmark results — x86_64-unknown-linux-gnu

← All hosts

Qualification: COMPLETE. 34/34 cells; 102/102 conformant samples; exact source 43cb3416d45d2b8188284a3ba81609ab65e9bfaa; source tree clean.

Machine and method

12th Gen Intel(R) Core(TM) i7-1260P; 12 physical / 16 logical; 31.0 GiB; Linux (Ubuntu 24.04).

Prns release binaries and the selected RNS reference run over loopback for 30 seconds per sample, three samples per cell. Endpoint scenarios cover all four initiator/responder pairings; relay scenarios cover both implementations behind the same fixed bidirectional wire driver. Linux uses Backbone for both implementations in default-policy profiles. Policy-matched profiles use TCP because stock RNS Backbone fixes its policy at 100 Mbps / 32 KiB; the fixed-500-byte-MTU request profile also uses TCP because Backbone has no fixed-MTU setting. macOS and Windows use TCP, the stock RNS fallback on hosts without Backbone support. Default-policy rows preserve each implementation's normal bitrate and MTU policy. Policy-matched resource rows configure both implementations for RNS TCP's 10 Mbps / 16 KiB tier; the tiny raw SINGLE relay scenario remains default-policy-only. Tables show median throughput and latency; memory is the maximum peak RSS. Energy is optional: it is metered processor energy minus a fresh idle baseline (macOS CPU Power; Linux RAPL package) and appears only when all three samples are positive. Packet/request energy is per delivery; resource energy is normalized per application MiB. Initiator/responder energy is the combined package measurement attributed by each role's CPU-time share. Relay-scenario package energy is explicitly whole-cell energy; only CPU and RSS are relay-isolated. A check means every sample satisfied the scenario's accounting rule.

At a glance

Bar chart of Prns median throughput as a multiple of RNS 1.5.4 for each published scenario Bar chart of RNS 1.5.4 peak memory as a multiple of Prns for each role and scenario
Chart data as a table
ScenarioPrnsReferencePrns / reference
Single-packet throughput19.2k/s711/s26.97×
Link-message throughput65.5k/s7.1k/s9.28×
Request/response27.3k/s630/s43.33×
Maximum resource segment175.67 MB/s58.70 MB/s2.99×
Maximum resource segment · matched RNS policy175.29 MB/s62.55 MB/s2.80×
64-segment resource stream363.22 MB/s67.38 MB/s5.39×
64-segment resource stream · matched RNS policy427.23 MB/s56.01 MB/s7.63×
Raw transport throughput160.78 MB/s10.14 MB/s15.85×
Transported resource throughput1476.09 MB/s192.51 MB/s7.67×
Transported resource throughput · matched RNS policy1735.42 MB/s172.27 MB/s10.07×
Scenario · rolePrns peak RSSReference peak RSSReference / Prns
Single-packet throughput · initiator7.3 MiB47.2 MiB6.43×
Single-packet throughput · responder31.3 MiB47.7 MiB1.53×
Link-message throughput · initiator7.5 MiB102.7 MiB13.72×
Link-message throughput · responder45.6 MiB94.1 MiB2.07×
Request/response · initiator50.5 MiB94.2 MiB1.87×
Request/response · responder37.7 MiB134.8 MiB3.57×
Maximum resource segment · initiator14.7 MiB176.3 MiB12.01×
Maximum resource segment · responder13.5 MiB109.7 MiB8.13×
Maximum resource segment · matched RNS policy · initiator13.2 MiB200.4 MiB15.18×
Maximum resource segment · matched RNS policy · responder11.1 MiB219.1 MiB19.82×
64-segment resource stream · initiator18.2 MiB393.2 MiB21.61×
64-segment resource stream · responder13.3 MiB223.8 MiB16.85×
64-segment resource stream · matched RNS policy · initiator16.4 MiB593.6 MiB36.20×
64-segment resource stream · matched RNS policy · responder11.5 MiB341.4 MiB29.62×
Raw transport throughput · relay45.9 MiB180.1 MiB3.92×
Transported resource throughput · relay42.9 MiB67.1 MiB1.57×
Transported resource throughput · matched RNS policy · relay8.6 MiB92.2 MiB10.71×

A dash means no current three-sample release evidence is published for that scenario.

Detailed results

Sustained delivery of small messages over one established link.

SubjectConformanceRateGoodputRTT p50 / p99Peak RSS (i / r)Energy / delivery (i / r)
Prns → Prnsconformant 5761337/5761337 · 3/3 samples65.5k/s15.72 MB/s<1.00 / 1.00 msi 7.5 MiB / r 45.6 MiBi 0.23 mJ / r 0.19 mJ
RNS 1.5.4 → Prnsconformant 818474/818474 · 3/3 samples9.1k/s2.19 MB/s2.00 / 2.00 msi 117.2 MiB / r 17.2 MiBi 1.25 mJ / r 1.43 mJ
Prns → RNS 1.5.4conformant 649488/649488 · 3/3 samples7.2k/s1.73 MB/s2.00 / 4.00 msi 7.5 MiB / r 93.9 MiBi 2.18 mJ / r 1.39 mJ
RNS 1.5.4 → RNS 1.5.4conformant 640333/640333 · 3/3 samples7.1k/s1.69 MB/s2.00 / 3.00 msi 102.7 MiB / r 94.1 MiBi 1.92 mJ / r 1.82 mJ

Packets

Single-packet throughput (v6)

Sustained proved delivery of varied-size one-shot packets over TCP.

SubjectConformanceRateGoodputRTT p50 / p99Peak RSS (i / r)Energy / delivery (i / r)
Prns → Prnsconformant 1789847/1789847 · 3/3 samples19.2k/s4.22 MB/s1.00 / 1.00 msi 7.3 MiB / r 31.3 MiBi 0.72 mJ / r 0.61 mJ
Prns → RNS 1.5.4conformant 860830/860830 · 3/3 samples9.5k/s2.10 MB/s2.00 / 3.00 msi 7.2 MiB / r 106.7 MiBi 1.78 mJ / r 1.01 mJ
RNS 1.5.4 → RNS 1.5.4conformant 63513/63513 · 3/3 samples711/s156.3 kB/s22.00 / 25.00 msi 47.2 MiB / r 47.7 MiBi 21.88 mJ / r 2.88 mJ
RNS 1.5.4 → Prnsconformant 62624/62624 · 3/3 samples694/s152.5 kB/s23.00 / 25.00 msi 47.3 MiB / r 7.5 MiBi 18.17 mJ / r 9.14 mJ

Requests

Request/response (v12)

Four concurrent small requests with asynchronous 1–4 KiB resource responses over four pre-established links.

SubjectConformanceRateRTT p50 / p99Peak RSS (i / r)Energy / delivery (i / r)
Prns → Prnsconformant 2455955/2455955 · 3/3 samples27.3k/s0.14 / 0.22 msi 50.5 MiB / r 37.7 MiBi 0.29 mJ / r 0.31 mJ
RNS 1.5.4 → Prnsconformant 58509/58509 · 3/3 samples640/s0.80 / 3.52 msi 103.3 MiB / r 7.3 MiBi 15.34 mJ / r 1.85 mJ
RNS 1.5.4 → RNS 1.5.4conformant 56902/56902 · 3/3 samples630/s4.20 / 12.15 msi 94.2 MiB / r 134.8 MiBi 11.28 mJ / r 19.93 mJ
Prns → RNS 1.5.4conformant 54100/54100 · 3/3 samples587/s2.27 / 252.69 msi 7.6 MiB / r 130.4 MiBi 1.59 mJ / r 23.41 mJ

Resources

64-segment resource stream (v10)

Stream 64 maximum-efficient resource segments with compression disabled.

SubjectConformanceRateGoodputRTT p50 / p99Peak RSS (i / r)Energy / MiB (i / r)
Prns → Prnsconformant 486/486 · 3/3 samples5/s363.22 MB/s184.00 / 205.00 msi 18.2 MiB / r 13.3 MiBi 35.29 mJ/MiB / r 35.05 mJ/MiB
Prns → RNS 1.5.4conformant 119/119 · 3/3 samples1/s88.80 MB/s741.00 / 838.00 msi 16.6 MiB / r 408.2 MiBi 50.02 mJ/MiB / r 156.11 mJ/MiB
RNS 1.5.4 → RNS 1.5.4conformant 92/92 · 3/3 samples1/s67.38 MB/s917.00 / 1420.00 msi 393.2 MiB / r 223.8 MiBi 124.17 mJ/MiB / r 148.28 mJ/MiB
RNS 1.5.4 → Prns1conformant 27/27 · 3/3 samples0.28/s18.77 MB/s3598.00 / 3653.00 msi 217.6 MiB / r 10.7 MiBi 162.15 mJ/MiB / r 87.02 mJ/MiB

Cell context

  1. RNS 1.5.4 → Prns — RNS prepares the next 1 MiB segment in a background thread. Prns proves the current segment before that preparation completes, making RNS enter a coarse 50 ms polling loop. A slower stock receiver gives preparation enough time to finish, avoiding that cliff.

Both implementations carry the same 67,108,800-byte payload in 64 maximum-efficient protocol segments. This is 64 bytes below 64 MiB and avoids making benchmark completion depend on RNS 1.5.4's timing-sensitive handoff to a 65th 64-byte tail segment.

64-segment resource stream · matched RNS policy (v1)

Stream 64 maximum-efficient resource segments with both endpoint interfaces configured for RNS's 10 Mbps / 16 KiB policy.

SubjectConformanceRateGoodputRTT p50 / p99Peak RSS (i / r)Energy / MiB (i / r)
Prns → Prnsconformant 575/575 · 3/3 samples6/s427.23 MB/s155.00 / 181.00 msi 16.4 MiB / r 11.5 MiBi 28.42 mJ/MiB / r 34.25 mJ/MiB
Prns → RNS 1.5.4conformant 118/118 · 3/3 samples1/s86.55 MB/s737.00 / 1046.00 msi 16.7 MiB / r 453.1 MiBi 49.57 mJ/MiB / r 154.02 mJ/MiB
RNS 1.5.4 → RNS 1.5.4conformant 77/77 · 3/3 samples0.83/s56.01 MB/s1110.00 / 1834.00 msi 593.6 MiB / r 341.4 MiBi 121.82 mJ/MiB / r 157.17 mJ/MiB
RNS 1.5.4 → Prns1conformant 27/27 · 3/3 samples0.28/s18.59 MB/s3608.00 / 3754.00 msi 217.3 MiB / r 10.6 MiBi 166.92 mJ/MiB / r 101.90 mJ/MiB

Cell context

  1. RNS 1.5.4 → Prns — RNS prepares the next 1 MiB segment in a background thread. Prns proves the current segment before that preparation completes, making RNS enter a coarse 50 ms polling loop. A slower stock receiver gives preparation enough time to finish, avoiding that cliff.

Controlled policy comparison: identical workload and protocol with both implementations configured for the stock RNS bitrate and MTU tier.

Both implementations carry the same 67,108,800-byte payload in 64 maximum-efficient protocol segments. This is 64 bytes below 64 MiB and avoids making benchmark completion depend on RNS 1.5.4's timing-sensitive handoff to a 65th 64-byte tail segment.

Maximum resource segment (v7)

Repeated transfer of one maximum-efficient resource segment.

SubjectConformanceRateGoodputRTT p50 / p99Peak RSS (i / r)Energy / MiB (i / r)
Prns → Prnsconformant 15070/15070 · 3/3 samples168/s175.67 MB/s5.00 / 6.00 msi 14.7 MiB / r 13.5 MiBi 44.26 mJ/MiB / r 43.46 mJ/MiB
RNS 1.5.4 → Prnsconformant 10132/10132 · 3/3 samples113/s118.07 MB/s9.00 / 11.00 msi 312.9 MiB / r 10.8 MiBi 109.63 mJ/MiB / r 79.77 mJ/MiB
Prns → RNS 1.5.4conformant 6124/6124 · 3/3 samples67/s70.77 MB/s14.00 / 16.00 msi 13.4 MiB / r 223.5 MiBi 54.86 mJ/MiB / r 165.75 mJ/MiB
RNS 1.5.4 → RNS 1.5.4conformant 5021/5021 · 3/3 samples56/s58.70 MB/s17.00 / 20.00 msi 176.3 MiB / r 109.7 MiBi 122.69 mJ/MiB / r 171.56 mJ/MiB

Maximum resource segment · matched RNS policy (v1)

Repeat maximum-efficient resource transfers with both endpoint interfaces configured for RNS's 10 Mbps / 16 KiB policy.

SubjectConformanceRateGoodputRTT p50 / p99Peak RSS (i / r)Energy / MiB (i / r)
Prns → Prnsconformant 15066/15066 · 3/3 samples167/s175.29 MB/s5.00 / 7.00 msi 13.2 MiB / r 11.1 MiBi 41.89 mJ/MiB / r 58.31 mJ/MiB
RNS 1.5.4 → Prnsconformant 11212/11212 · 3/3 samples125/s130.91 MB/s8.00 / 10.00 msi 363.4 MiB / r 11.4 MiBi 106.19 mJ/MiB / r 72.53 mJ/MiB
Prns → RNS 1.5.4conformant 6255/6255 · 3/3 samples69/s72.68 MB/s13.00 / 16.00 msi 13.1 MiB / r 253.5 MiBi 57.04 mJ/MiB / r 172.08 mJ/MiB
RNS 1.5.4 → RNS 1.5.4conformant 5373/5373 · 3/3 samples60/s62.55 MB/s16.00 / 20.00 msi 200.4 MiB / r 219.1 MiBi 132.63 mJ/MiB / r 185.83 mJ/MiB

Controlled policy comparison: identical workload and protocol with both implementations configured for the stock RNS bitrate and MTU tier.

Transport

Raw transport throughput (v2)

Balanced bidirectional switching of opaque packets through a pure transport node.

RelayInterface policy / MTULink MTU / payloadConformancePayloadFramesWire in / outRelay CPURelay peak RSSHarness source / sink / limit
Prns relay1 Gbps / 512 KiB—conformant 59993795/59993795 · 3/3 samples160.78 MB/s670.0k/s233.57 MB/s / 222.85 MB/s37.07 s45.9 MiB6.28× / 8.24× / 6.28×
RNS 1.5.4 relay100 Mbps / 32 KiB—conformant 3787213/3787213 · 3/3 samples10.14 MB/s42.3k/s14.73 MB/s / 14.06 MB/s33.53 s180.1 MiB98.26× / 138.41× / 98.26×

Announce signing and verification happen before measurement; the timed path switches opaque transport data.

This practical profile preserves each implementation's normal host-interface policy; the exact bitrate and MTU are reported with every row.

Transported resource throughput (v2)

Relay balanced near-MTU resource parts over one warm transported link using each implementation's default host-interface policy.

RelayInterface policy / MTULink MTU / payloadConformancePayloadFramesWire in / outRelay CPURelay peak RSSHarness source / sink / limit
Prns relay1 Gbps / 512 KiB512 / 512 KiBconformant 253184/253184 · 3/3 samples1476.09 MB/s2.8k/s1487.77 MB/s / 1487.77 MB/s32.16 s42.9 MiB4.22× / 1.88× / 1.88×
RNS 1.5.4 relay100 Mbps / 32 KiB32 / 32 KiBconformant 528756/528756 · 3/3 samples192.51 MB/s5.9k/s194.11 MB/s / 194.11 MB/s31.91 s67.1 MiB35.02× / 27.68× / 27.68×

Default-policy deployment view: Prns and RNS retain their normal host-interface bitrate and MTU policy.

Transported resource throughput · matched RNS policy (v1)

Relay the identical transported-resource workload with both relay interfaces configured for RNS's 10 Mbps / 16 KiB policy.

RelayInterface policy / MTULink MTU / payloadConformancePayloadFramesWire in / outRelay CPURelay peak RSSHarness source / sink / limit
Prns relay10 Mbps / 16 KiB16 / 16 KiBconformant 9547003/9547003 · 3/3 samples1735.42 MB/s106.1k/s1751.29 MB/s / 1751.29 MB/s37.53 s8.6 MiB2.85× / 4.05× / 2.85×
RNS 1.5.4 relay10 Mbps / 16 KiB16 / 16 KiBconformant 950288/950288 · 3/3 samples172.27 MB/s10.5k/s173.84 MB/s / 173.84 MB/s38.12 s92.2 MiB26.92× / 26.08× / 26.08×

Controlled policy comparison: identical transported link and driver with both implementations configured for the stock RNS bitrate and MTU tier.

Implementation legend

  • Prns — Rust, ed25519-dalek 3.0.0.

  • RNS 1.5.4 — Python (stock interpreted), PyCA cryptography / OpenSSL; reference.

Metric legend

Conformance is clean samples and exact delivered/sent accounting. Rows are ordered by median throughput, never by memory or energy. Rate is median settled operations per second. Goodput is median application bytes per second. Relay scenarios report carried opaque payload bytes, forwarded frames, actual HDLC-framed TCP wire rates, relay-only CPU/RSS, and full-path driver source/sink/limiting headroom; transported-resource rows additionally expose negotiated link MTU and payload bytes per part. RTT is median p50/p99 settlement latency. Peak RSS shows the largest initiator (i) and responder (r) process peaks across samples. Energy shows optional initiator/responder attribution of median net processor energy and appears only with three positive-baseline samples: per delivery for packets/requests, per application MiB for resources. Relay-scenario energy is whole-cell package energy, never relay-only energy.