Current section
Files
Jump to
Current section
Files
iconvex_unicode
BENCHMARKS.md
BENCHMARKS.md
# Iconvex Unicode benchmarks
The executable benchmarks compare native code with independent direct
transcriptions; none routes its reference path through the production codec.
Run the quick gates with the pinned local Core checkout:
```console
ICONVEX_PATH=../iconvex mix run bench/formal_signwriting_bench.exs --quick
ICONVEX_PATH=../iconvex mix run bench/fss_utf_benchmark.exs --quick
ICONVEX_PATH=../iconvex mix run bench/utf5_benchmark.exs --quick
ICONVEX_PATH=../iconvex mix run bench/utf6_benchmark.exs --quick
```
Evidence from 2026-07-30 with Elixir 1.19.5 / OTP 28.3:
| Profile | Native/reference or baseline | Reduction scaling | Gate |
|---|---:|---:|---|
| Formal SignWriting direct UTF-8 | 0.529x–0.897x | 1.987x–2.004x | pass |
| FSS-UTF, six native/public paths | 0.415x–1.842x | 1.738x–1.985x | pass (30x ceiling) |
| UTF-5, eight corpus/path pairs | 0.299x–0.536x | 1.896x–2.006x | pass |
| UTF-6, ten corpus/path pairs | 0.248x–1.207x | 1.956x–2.006x | pass |
Formal SignWriting also reported 50.965–68.517 MiB/s for its two direct
paths; UTF-5 reported 10.330–131.899 MiB/s and UTF-6 13.562–80.581 MiB/s
across their quick corpora. Wall-clock throughput is machine-specific, so the
release gates use paired latency ratios and doubled-work reduction scaling.
GNU libiconv 1.19 has no equivalent Formal SignWriting, distinct historical
FSS-UTF/UTF-2, draft UTF-5, or draft UTF-6 codec. The benchmarks therefore use
source-derived independent algorithms instead of pretending that a
semantically different GNU codec is a comparator.
Pinned benchmark SHA-256 values:
- Formal SignWriting:
`cabbaf66a7abde70627ce15f856873270a61acce51272b7c57cd447bcedca220`
- FSS-UTF:
`76dbb4f27e6a87b3cac3f42edcbd094c66d81fd0cd1d07964acc945499479dff`
- UTF-5:
`fcc951860339148900b83b97eb31796f34d420b76e912dc4ce2e73ecaa6712ba`
- UTF-6:
`0bd5833a25bd1ab8590e4e0d69bf846cf7891e7d567ccb384d24797069f1b578`