Pixelbadger Toolkit — Benchmark Report ShortRun

Date: 2026-05-24 Runtime: .NET 9.0.16 · Arm64 RyuJIT 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 ms22.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 ms53.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.

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.