Pixelbadger Toolkit — Benchmark Report ShortRun

Date: 2026-05-24 Runtime: .NET 9.0.16 · Arm64 RyuJIT (baseline) — see .NET 9 vs .NET 10 comparison below Hardware: Cortex-A520 / X4 / A725 · 6 physical cores BenchmarkDotNet v0.15.8
Total Benchmarks
42
across 7 classes
Fastest Op
29 ns
Homomorphic Substring
Slowest Op
7.5 s
Homomorphic Decrypt Long
Warmup / Iterations
3 / 3
ShortRun job
Topics Covered
4
Strings · Interpreters · Images · Crypto

Strings

Abjadify — Execution Time (µs)

Abjadify — Memory Allocated (KB)

Levenshtein Distance — Execution Time (µs)

Levenshtein Distance — Memory Allocated (KB)

BenchmarkMeanErrorStdDevGen0Allocated
Abjadify · ShortText2.537 µs±0.568 µs0.031 µs0.973.95 KB
Abjadify · Paragraph14.016 µs±0.956 µs0.052 µs4.9420.21 KB
Abjadify · Document290.770 µs±56.92 µs3.12 µs108.89445.45 KB
Levenshtein · EmptyVsLong3.933 µs±2.772 µs0.152 µs0.311.28 KB
Levenshtein · ShortStrings6.812 µs±3.690 µs0.202 µs0.401.68 KB
Levenshtein · MediumStrings10.650 µs±1.860 µs0.102 µs2.239.13 KB
Levenshtein · IdenticalStrings168.090 µs±53.90 µs2.955 µs45.41146.21 KB
Levenshtein · LongStrings173.491 µs±54.78 µs3.003 µs45.41146.21 KB

Levenshtein identical-string and long-string cases take similar time — the algorithm does not short-circuit on equality.

Interpreters

Brainfuck Interpreter — Execution Time (µs)

Ook — Translation & Execution Time (µs)

Brainfuck — Memory Allocated (KB)

Ook — Memory Allocated (KB)

BenchmarkMeanErrorStdDevGen0Allocated
Brainfuck · Tiny1.198 µs±0.865 µs0.047 µs7.1929.51 KB
Brainfuck · HelloWorld1.795 µs±0.584 µs0.032 µs7.1929.57 KB
Brainfuck · MultiplyIntensive5.189 µs±12.84 µs0.704 µs7.1929.52 KB
Ook · BF→Ook (Short)1.292 µs±0.325 µs0.018 µs1.385.63 KB
Ook · BF→Ook (HelloWorld)2.132 µs±0.181 µs0.010 µs1.556.35 KB
Ook · Ook→BF (Short)9.151 µs±2.133 µs0.117 µs2.6910.98 KB
Ook · Ook→BF (HelloWorld)9.592 µs±1.904 µs0.104 µs3.4214.01 KB
Ook · Execute (Short)12.724 µs±14.95 µs0.820 µs9.8940.48 KB
Ook · Execute (HelloWorld)22.218 µs±27.09 µs1.485 µs10.6243.58 KB

Ook→BF translation is ~7× slower than BF→Ook — the verbose Ook token format requires significantly more lexing work.

Images

Steganography — Execution Time (ms)

Steganography — Memory Allocated (KB)

BenchmarkMeanErrorStdDevGen0Gen1Gen2Allocated
Encode · Short msg, Small img (200×200)2.438 ms±7.294 ms0.400 ms———22.92 KB
Decode · Small img (200×200)2.193 ms±7.013 ms0.384 ms117.1966.4166.41460.81 KB
Encode · Long msg, Large img (800×800)22.238 ms±18.53 ms1.016 ms———53.52 KB
Decode · Large img (800×800)25.317 ms±46.15 ms2.530 ms1031.25968.75968.757205.3 KB

Decode allocates ~20× more memory than encode — it must load the full decoded pixel buffer to reconstruct the message from LSBs. Large image decode reaches 7 MB.

Crypto — Homomorphic Encryption (Paillier)

Encrypt / Decrypt — Execution Time (ms) · param="hello"

Slice Operations — Execution Time (ns) · param="hello"

Encrypt / Decrypt — Memory Allocated (KB) · param="hello"

BenchmarkParamMeanAllocated
SubstringEncrypted · FromStarthello29.5 ns128 B
SubstringEncrypted · FromMiddlehello36.4 ns208 B
SubstringEncrypted · ToEndhello53.4 ns344 B
ReplaceInString · SingleCharhello154.1 ms6.88 KB
ReplaceInString · Word (4 chars)hello304.6 ms25.64 KB
EncryptString · Short (5 chars)hello656.4 ms32.55 KB
DecryptString · Short (5 chars)hello676.9 ms18.80 KB
EncryptString · Long (56 chars)hello4,208 ms362.9 KB
DecryptString · Long (56 chars)hello7,528 ms213.3 KB

Slice/substring operations on encrypted data are O(1) pointer slices (~30–55 ns) — no decryption occurs. Encrypt/decrypt cost scales linearly with character count due to per-character Paillier operations.

.NET 9 vs .NET 10

The toolkit now targets .NET 10. The .NET 10 numbers were re-run with the same ShortRun job (BenchmarkDotNet v0.15.8, 2026-10-04) on a different machine (AMD EPYC 7763 x64, 2 physical cores, Ubuntu 24.04, .NET SDK 10.0.401) from the .NET 9 baseline above (Arm64). Because hardware and architecture differ, the two columns are not a like-for-like runtime comparison and no percentage change is given; they are listed for reference only. Allocations are effectively unchanged between the two runs (within ~1–10%), apart from small per-call differences.

Benchmark.NET 9 (Arm64).NET 10 (x64)
Abjadify · ShortText2.54 µs2.617 µs
Abjadify · Paragraph14 µs14.2 µs
Abjadify · Document291 µs286.3 µs
Levenshtein · EmptyVsLong3.93 µs4.133 µs
Levenshtein · ShortStrings6.81 µs7.477 µs
Levenshtein · MediumStrings10.7 µs14.31 µs
Levenshtein · IdenticalStrings168 µs190.3 µs
Levenshtein · LongStrings173 µs195.8 µs
Brainfuck · Tiny1.2 µs1.328 µs
Brainfuck · HelloWorld1.79 µs2.316 µs
Brainfuck · MultiplyIntensive5.19 µs7.032 µs
Ook · BF→Ook (Short)1.29 µs1.745 µs
Ook · BF→Ook (HelloWorld)2.13 µs2.393 µs
Ook · Ook→BF (Short)9.15 µs6.001 µs
Ook · Ook→BF (HelloWorld)9.59 µs9.342 µs
Ook · Execute (Short)12.7 µs7.505 µs
Ook · Execute (HelloWorld)22.2 µs11.95 µs
Steganography · Encode short msg, 200×2002.44 ms1.472 ms
Steganography · Decode 200×2002.19 ms0.6109 ms
Steganography · Encode long msg, 800×80022.2 ms17.22 ms
Steganography · Decode 800×80025.3 ms8.568 ms
Paillier · SubstringEncrypted FromStart29.5 ns26.61 ns
Paillier · SubstringEncrypted FromMiddle36.4 ns32.85 ns
Paillier · SubstringEncrypted ToEnd53.4 ns39.92 ns
Paillier · ReplaceInString SingleChar154 ms80.53 ms
Paillier · ReplaceInString Word305 ms317.4 ms
Paillier · EncryptString Short656 ms395.7 ms
Paillier · DecryptString Short677 ms396.3 ms
Paillier · EncryptString Long4.21e+03 ms4,587 ms
Paillier · DecryptString Long7.53e+03 ms4,541 ms

Cross-Topic Overview

Representative Operation — Mean Execution Time (log scale, µs)

Crypto encrypt/decrypt operations are shown here in µs for scale comparison. Homomorphic substring slices (<0.1 µs) are omitted as they would not be visible.