Decompile speed
Wall time from the decompiler adapter (time_ms on each row) — typically one binary batch decompile, amortized per function. Semantic / wine / oracle time is not included. This page is a non-ranking practicality diagnostic (same policy as Quality EXT). Optional summary.extensions.speed.microbench cold/warm trials come from the isolated Speed Smoke CI job.
Fission mean
1.37s
n=213 · p95 3.05s
Fission p50
1.19s
Median decompile latency
Ghidra mean
11.71s
n=215 · p95 27.42s
Paired speedup
8.54×
median ghidra/fission · n=212 pairs · geo 8.81×
Fission faster
100%
Share of paired cells with fission_ms < ghidra_ms
Micro-bench (cold vs warm)
Same binary × addresses, N timed /decompile_batch requests. Cold = trial 0; warm = trials 1..N−1 (no container restart). Schema: speed-microbench-v2 · source: benchmark envelope · Fission version not recorded · measured: 8/5/2026, 6:06:39 PM UTC — cold = first timed /decompile_batch after optional discarded warmups; warm = trials 2..N on the same process (no container restart). adapter_ms prefers server-reported time_ms; wall_ms is client RTT. When --container is set, CPU and memory are sampled concurrently from Docker container cgroups. CPU may exceed 100% on multicore hosts; peak memory is the maximum observed sample, not an OS high-water mark.
| Decompiler | Cold mean | Cold p50 | Cold n | Warm mean | Warm p50 | Warm n | CPU mean | CPU peak | Memory peak | Memory % | Samples |
|---|
| fission | 6.32s | 6.32s | 1 | 1.71s | 1.72s | 4 | 47.3% | 106.7% | 441.7 MiB | 2.8% | 48 |
| ghidra | 18.48s | 18.48s | 1 | 5.70s | 5.68s | 4 | 171.5% | 284.7% | 983.5 MiB | 6.2% | 162 |
Resource scope is the whole adapter container cgroup, including the long-lived runtime and child processes. CPU may exceed 100% on multicore runners. Memory peak is the largest Docker sample observed during timed requests, not an operating-system high-water mark.
By decompiler (envelope rows)
Adapter decompile wall time per row (time_ms). Excludes semantic/oracle. Not a ranking axis.
| Decompiler | Timed | Missing | Mean | p50 | p95 | Min | Max | Sum |
|---|
| fission | 213 | 3 | 1.37s | 1.19s | 3.05s | 333ms | 4.28s | 291.58s |
| ghidra | 215 | 1 | 11.71s | 9.59s | 27.42s | 4.68s | 39.76s | 2517.18s |
Fission ↔ Ghidra (paired)
Same function × variant. Speedup= ghidra_ms / fission_ms (>1 ⇒ Fission faster). Sorted by slowest Fission first. Showing top 40 of 212.
| Function | Variant | Fission | Ghidra | Speedup |
|---|
manipulate_bitfields | gcc -O0 | 4.28s | 39.76s | 9.29× |
matrix_multiply | gcc -O0 | 4.28s | 39.76s | 9.29× |
manipulate_bitfields | gcc-m32 -O2 | 4.16s | 25.39s | 6.10× |
matrix_multiply | gcc-m32 -O2 | 4.16s | 25.39s | 6.10× |
find_substring | gcc-m32 -O2 | 3.89s | 14.13s | 3.63× |
reverse_string | gcc-m32 -O2 | 3.89s | 14.13s | 3.63× |
find_substring | gcc-m32 -O0 | 3.71s | 37.55s | 10.13× |
reverse_string | gcc-m32 -O0 | 3.71s | 37.55s | 10.13× |
|
Slowest Fission functions
Fission-only, aggregated across variants (mean / p95 / max).
| Function | n | Mean | p95 | Max |
|---|
manipulate_bitfields | 6 | 3.13s | 4.25s | 4.28s |
matrix_multiply | 6 | 3.13s | 4.25s | 4.28s |
find_substring | 6 | 2.82s | 3.85s | 3.89s |
reverse_string | 6 | 2.82s | 3.85s | 3.89s |
crc32 | 6 | 1.76s | 2.96s | 3.05s |
rc4_crypt | 6 | 1.76s | 2.96s | 3.05s |
rc4_init | 6 | 1.76s | 2.96s | 3.05s |
find_pair_value | 6 | 1.36s | 2.22s | 2.42s |
Fission by compiler variant
Fission mean / p50 by compiler_variant.
| Variant | n | Mean | p50 |
|---|
| clang -O2 | 33 | 1.88s | 1.86s |
| gcc-m32 -O2 | 36 | 1.55s | 1.19s |
| gcc-m32 -O0 | 36 | 1.53s | 1.33s |
| gcc -O0 | 36 | 1.44s | 1.33s |
| gcc -O2 | 36 | 971ms | 1.08s |
| clang -O0 | 36 | 878ms | 799ms |