diff --git a/Makefile b/Makefile
index e6502ee..0f62b33 100644
--- a/Makefile
+++ b/Makefile
@@ -3,20 +3,26 @@ all:
bench.encode:
cd euneus_bench && mix encode
+bench.encode_v2:
+ cd euneus_bench && mix encode_v2
+
bench.encode_parsed:
cd euneus_bench && mix encode_parsed
-bench.encode_parsed_plugins:
- cd euneus_bench && mix encode_parsed_plugins
+bench.encode_parsed_codecs:
+ cd euneus_bench && mix encode_parsed_codecs
bench.decode:
cd euneus_bench && mix decode
+bench.decode_v2:
+ cd euneus_bench && mix decode_v2
+
bench.decode_parsed:
cd euneus_bench && mix decode_parsed
-bench.decode_parsed_plugins:
- cd euneus_bench && mix decode_parsed_plugins
+bench.decode_parsed_codecs:
+ cd euneus_bench && mix decode_parsed_codecs
.PHONY: test
diff --git a/euneus_bench/mix.exs b/euneus_bench/mix.exs
index c02f580..4df0594 100644
--- a/euneus_bench/mix.exs
+++ b/euneus_bench/mix.exs
@@ -15,11 +15,13 @@ defmodule EuneusBench.MixProject do
defp aliases() do
[
encode: ["run script/encode.exs"],
+ encode_v2: ["run script/encode_v2.exs"],
encode_parsed: ["run script/encode_parsed.exs"],
- encode_parsed_plugins: ["run script/encode_parsed_plugins.exs"],
+ encode_parsed_codecs: ["run script/encode_parsed_codecs.exs"],
decode: ["run script/decode.exs"],
+ decode_v2: ["run script/decode_v2.exs"],
decode_parsed: ["run script/decode_parsed.exs"],
- decode_parsed_plugins: ["run script/decode_parsed_plugins.exs"]
+ decode_parsed_codecs: ["run script/decode_parsed_codecs.exs"]
]
end
diff --git a/euneus_bench/runs/decode_parsed_codecs.md b/euneus_bench/runs/decode_parsed_codecs.md
new file mode 100644
index 0000000..43672bf
--- /dev/null
+++ b/euneus_bench/runs/decode_parsed_codecs.md
@@ -0,0 +1,1648 @@
+Benchmark
+
+Benchmark run from 2023-11-24 19:45:59.146760Z UTC
+
+## System
+
+Benchmark suite executing on the following system:
+
+
+
+ Operating System |
+ Linux |
+
+ CPU Information |
+ Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz |
+
+ Number of Available Cores |
+ 8 |
+
+ Available Memory |
+ 15.54 GB |
+
+ Elixir Version |
+ 1.16.0-dev |
+
+ Erlang Version |
+ 26.1 |
+
+
+
+## Configuration
+
+Benchmark suite executing with the following configuration:
+
+
+
+ :time |
+ 10 s |
+
+ :parallel |
+ 1 |
+
+ :warmup |
+ 1 s |
+
+
+
+## Statistics
+
+
+
+__Input: Blockchain__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 5.99 K |
+ 166.81 µs |
+ ±44.21% |
+ 148.90 µs |
+ 525.23 µs |
+
+
+
+ Jason |
+ 5.57 K |
+ 179.44 µs |
+ ±45.19% |
+ 154.42 µs |
+ 511.54 µs |
+
+
+
+ thoas |
+ 4.81 K |
+ 207.94 µs |
+ ±30.35% |
+ 186.72 µs |
+ 487.73 µs |
+
+
+
+ euneus |
+ 4.61 K |
+ 216.84 µs |
+ ±35.01% |
+ 190.44 µs |
+ 497.46 µs |
+
+
+
+ jsone |
+ 4.25 K |
+ 235.27 µs |
+ ±31.93% |
+ 222.43 µs |
+ 486.03 µs |
+
+
+
+ jsx |
+ 1.83 K |
+ 547.11 µs |
+ ±12.09% |
+ 550.49 µs |
+ 709.50 µs |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 5.99 K |
+ |
+
+
+
+ Jason |
+ 5.57 K |
+ 1.08x |
+
+
+
+ thoas |
+ 4.81 K |
+ 1.25x |
+
+
+
+ euneus |
+ 4.61 K |
+ 1.3x |
+
+
+
+ jsone |
+ 4.25 K |
+ 1.41x |
+
+
+
+ jsx |
+ 1.83 K |
+ 3.28x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 1.55 KB |
+ |
+
+
+ Jason |
+ 51.63 KB |
+ 33.37x |
+
+
+ thoas |
+ 51.41 KB |
+ 33.24x |
+
+
+ euneus |
+ 86.13 KB |
+ 55.68x |
+
+
+ jsone |
+ 151.39 KB |
+ 97.87x |
+
+
+ jsx |
+ 311.43 KB |
+ 201.33x |
+
+
+
+
+
+__Input: Giphy__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 962.95 |
+ 1.04 ms |
+ ±22.02% |
+ 1.09 ms |
+ 1.44 ms |
+
+
+
+ thoas |
+ 489.11 |
+ 2.04 ms |
+ ±5.34% |
+ 2.01 ms |
+ 2.38 ms |
+
+
+
+ Jason |
+ 468.75 |
+ 2.13 ms |
+ ±7.14% |
+ 2.14 ms |
+ 2.43 ms |
+
+
+
+ jsone |
+ 279.45 |
+ 3.58 ms |
+ ±4.03% |
+ 3.51 ms |
+ 3.98 ms |
+
+
+
+ euneus |
+ 240.77 |
+ 4.15 ms |
+ ±3.62% |
+ 4.11 ms |
+ 4.62 ms |
+
+
+
+ jsx |
+ 165.48 |
+ 6.04 ms |
+ ±2.59% |
+ 6.02 ms |
+ 6.46 ms |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 962.95 |
+ |
+
+
+
+ thoas |
+ 489.11 |
+ 1.97x |
+
+
+
+ Jason |
+ 468.75 |
+ 2.05x |
+
+
+
+ jsone |
+ 279.45 |
+ 3.45x |
+
+
+
+ euneus |
+ 240.77 |
+ 4.0x |
+
+
+
+ jsx |
+ 165.48 |
+ 5.82x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 0.26 MB |
+ |
+
+
+ thoas |
+ 0.67 MB |
+ 2.61x |
+
+
+ Jason |
+ 0.67 MB |
+ 2.61x |
+
+
+ jsone |
+ 2.40 MB |
+ 9.34x |
+
+
+ euneus |
+ 2.54 MB |
+ 9.88x |
+
+
+ jsx |
+ 3.65 MB |
+ 14.21x |
+
+
+
+
+
+__Input: GitHub__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 2.69 K |
+ 371.39 µs |
+ ±22.74% |
+ 347.09 µs |
+ 687.69 µs |
+
+
+
+ Jason |
+ 2.02 K |
+ 493.87 µs |
+ ±12.70% |
+ 486.02 µs |
+ 642.94 µs |
+
+
+
+ thoas |
+ 1.73 K |
+ 578.76 µs |
+ ±9.44% |
+ 570.31 µs |
+ 729.56 µs |
+
+
+
+ euneus |
+ 1.46 K |
+ 682.71 µs |
+ ±9.38% |
+ 673.19 µs |
+ 845.65 µs |
+
+
+
+ jsone |
+ 1.42 K |
+ 705.51 µs |
+ ±7.59% |
+ 712.86 µs |
+ 848.74 µs |
+
+
+
+ jsx |
+ 0.52 K |
+ 1931.25 µs |
+ ±4.44% |
+ 1942.63 µs |
+ 2126.53 µs |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 2.69 K |
+ |
+
+
+
+ Jason |
+ 2.02 K |
+ 1.33x |
+
+
+
+ thoas |
+ 1.73 K |
+ 1.56x |
+
+
+
+ euneus |
+ 1.46 K |
+ 1.84x |
+
+
+
+ jsone |
+ 1.42 K |
+ 1.9x |
+
+
+
+ jsx |
+ 0.52 K |
+ 5.2x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 41.91 KB |
+ |
+
+
+ Jason |
+ 122.80 KB |
+ 2.93x |
+
+
+ thoas |
+ 122.73 KB |
+ 2.93x |
+
+
+ euneus |
+ 316.23 KB |
+ 7.55x |
+
+
+ jsone |
+ 425.48 KB |
+ 10.15x |
+
+
+ jsx |
+ 1190.20 KB |
+ 28.4x |
+
+
+
+
+
+__Input: GovTrack__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 27.20 |
+ 36.76 ms |
+ ±1.51% |
+ 36.66 ms |
+ 40.01 ms |
+
+
+
+ Jason |
+ 17.17 |
+ 58.25 ms |
+ ±2.15% |
+ 58.35 ms |
+ 61.13 ms |
+
+
+
+ thoas |
+ 15.87 |
+ 63.02 ms |
+ ±0.90% |
+ 62.89 ms |
+ 65.92 ms |
+
+
+
+ jsone |
+ 9.51 |
+ 105.10 ms |
+ ±2.58% |
+ 105.99 ms |
+ 109.25 ms |
+
+
+
+ euneus |
+ 8.73 |
+ 114.49 ms |
+ ±1.60% |
+ 114.38 ms |
+ 122.51 ms |
+
+
+
+ jsx |
+ 4.42 |
+ 226.15 ms |
+ ±1.33% |
+ 226.34 ms |
+ 231.83 ms |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 27.20 |
+ |
+
+
+
+ Jason |
+ 17.17 |
+ 1.58x |
+
+
+
+ thoas |
+ 15.87 |
+ 1.71x |
+
+
+
+ jsone |
+ 9.51 |
+ 2.86x |
+
+
+
+ euneus |
+ 8.73 |
+ 3.11x |
+
+
+
+ jsx |
+ 4.42 |
+ 6.15x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 11.29 MB |
+ |
+
+
+ Jason |
+ 11.68 MB |
+ 1.03x |
+
+
+ thoas |
+ 11.68 MB |
+ 1.03x |
+
+
+ jsone |
+ 38.05 MB |
+ 3.37x |
+
+
+ euneus |
+ 37.10 MB |
+ 3.29x |
+
+
+ jsx |
+ 81.29 MB |
+ 7.2x |
+
+
+
+
+
+__Input: Issue 90__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 49.71 |
+ 20.12 ms |
+ ±2.50% |
+ 19.97 ms |
+ 22.61 ms |
+
+
+
+ Jason |
+ 25.27 |
+ 39.57 ms |
+ ±1.31% |
+ 39.45 ms |
+ 41.49 ms |
+
+
+
+ euneus |
+ 25.24 |
+ 39.62 ms |
+ ±2.01% |
+ 39.71 ms |
+ 41.40 ms |
+
+
+
+ jsone |
+ 23.30 |
+ 42.91 ms |
+ ±0.88% |
+ 42.83 ms |
+ 44.29 ms |
+
+
+
+ thoas |
+ 17.95 |
+ 55.72 ms |
+ ±0.71% |
+ 55.68 ms |
+ 57.07 ms |
+
+
+
+ jsx |
+ 9.95 |
+ 100.47 ms |
+ ±1.27% |
+ 100.19 ms |
+ 108.62 ms |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 49.71 |
+ |
+
+
+
+ Jason |
+ 25.27 |
+ 1.97x |
+
+
+
+ euneus |
+ 25.24 |
+ 1.97x |
+
+
+
+ jsone |
+ 23.30 |
+ 2.13x |
+
+
+
+ thoas |
+ 17.95 |
+ 2.77x |
+
+
+
+ jsx |
+ 9.95 |
+ 4.99x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 11.66 KB |
+ |
+
+
+ Jason |
+ 961.94 KB |
+ 82.47x |
+
+
+ euneus |
+ 987.23 KB |
+ 84.64x |
+
+
+ jsone |
+ 5284.81 KB |
+ 453.09x |
+
+
+ thoas |
+ 961.87 KB |
+ 82.46x |
+
+
+ jsx |
+ 4362.92 KB |
+ 374.05x |
+
+
+
+
+
+__Input: JSON Generator__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 1158.94 |
+ 0.86 ms |
+ ±23.91% |
+ 0.78 ms |
+ 1.41 ms |
+
+
+
+ Jason |
+ 697.71 |
+ 1.43 ms |
+ ±7.08% |
+ 1.46 ms |
+ 1.64 ms |
+
+
+
+ thoas |
+ 626.52 |
+ 1.60 ms |
+ ±6.40% |
+ 1.61 ms |
+ 1.83 ms |
+
+
+
+ jsone |
+ 437.07 |
+ 2.29 ms |
+ ±4.85% |
+ 2.29 ms |
+ 2.56 ms |
+
+
+
+ euneus |
+ 405.09 |
+ 2.47 ms |
+ ±4.47% |
+ 2.45 ms |
+ 2.77 ms |
+
+
+
+ jsx |
+ 184.24 |
+ 5.43 ms |
+ ±6.44% |
+ 5.39 ms |
+ 5.95 ms |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 1158.94 |
+ |
+
+
+
+ Jason |
+ 697.71 |
+ 1.66x |
+
+
+
+ thoas |
+ 626.52 |
+ 1.85x |
+
+
+
+ jsone |
+ 437.07 |
+ 2.65x |
+
+
+
+ euneus |
+ 405.09 |
+ 2.86x |
+
+
+
+ jsx |
+ 184.24 |
+ 6.29x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 0.20 MB |
+ |
+
+
+ Jason |
+ 0.47 MB |
+ 2.32x |
+
+
+ thoas |
+ 0.47 MB |
+ 2.32x |
+
+
+ jsone |
+ 1.44 MB |
+ 7.1x |
+
+
+ euneus |
+ 1.28 MB |
+ 6.3x |
+
+
+ jsx |
+ 3.04 MB |
+ 14.98x |
+
+
+
+
+
+__Input: JSON Generator (Pretty)__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 692.19 |
+ 1.44 ms |
+ ±10.75% |
+ 1.43 ms |
+ 1.80 ms |
+
+
+
+ Jason |
+ 592.50 |
+ 1.69 ms |
+ ±5.50% |
+ 1.71 ms |
+ 1.89 ms |
+
+
+
+ thoas |
+ 542.55 |
+ 1.84 ms |
+ ±5.07% |
+ 1.84 ms |
+ 2.08 ms |
+
+
+
+ jsone |
+ 401.14 |
+ 2.49 ms |
+ ±4.81% |
+ 2.48 ms |
+ 2.78 ms |
+
+
+
+ euneus |
+ 363.17 |
+ 2.75 ms |
+ ±4.44% |
+ 2.73 ms |
+ 3.10 ms |
+
+
+
+ jsx |
+ 175.54 |
+ 5.70 ms |
+ ±2.75% |
+ 5.69 ms |
+ 6.10 ms |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 692.19 |
+ |
+
+
+
+ Jason |
+ 592.50 |
+ 1.17x |
+
+
+
+ thoas |
+ 542.55 |
+ 1.28x |
+
+
+
+ jsone |
+ 401.14 |
+ 1.73x |
+
+
+
+ euneus |
+ 363.17 |
+ 1.91x |
+
+
+
+ jsx |
+ 175.54 |
+ 3.94x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 0.25 MB |
+ |
+
+
+ Jason |
+ 0.47 MB |
+ 1.87x |
+
+
+ thoas |
+ 0.47 MB |
+ 1.87x |
+
+
+ jsone |
+ 1.44 MB |
+ 5.74x |
+
+
+ euneus |
+ 1.28 MB |
+ 5.1x |
+
+
+ jsx |
+ 3.04 MB |
+ 12.11x |
+
+
+
+
+
+__Input: Pokedex__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 1.33 K |
+ 0.75 ms |
+ ±24.51% |
+ 0.79 ms |
+ 1.06 ms |
+
+
+
+ thoas |
+ 1.17 K |
+ 0.85 ms |
+ ±10.76% |
+ 0.80 ms |
+ 1.06 ms |
+
+
+
+ Jason |
+ 1.05 K |
+ 0.95 ms |
+ ±8.51% |
+ 0.96 ms |
+ 1.18 ms |
+
+
+
+ jsone |
+ 0.59 K |
+ 1.71 ms |
+ ±7.59% |
+ 1.70 ms |
+ 2.00 ms |
+
+
+
+ euneus |
+ 0.48 K |
+ 2.10 ms |
+ ±5.43% |
+ 2.09 ms |
+ 2.43 ms |
+
+
+
+ jsx |
+ 0.25 K |
+ 3.94 ms |
+ ±2.16% |
+ 3.92 ms |
+ 4.34 ms |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 1.33 K |
+ |
+
+
+
+ thoas |
+ 1.17 K |
+ 1.13x |
+
+
+
+ Jason |
+ 1.05 K |
+ 1.26x |
+
+
+
+ jsone |
+ 0.59 K |
+ 2.27x |
+
+
+
+ euneus |
+ 0.48 K |
+ 2.78x |
+
+
+
+ jsx |
+ 0.25 K |
+ 5.23x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 0.0995 MB |
+ |
+
+
+ thoas |
+ 0.38 MB |
+ 3.82x |
+
+
+ Jason |
+ 0.38 MB |
+ 3.83x |
+
+
+ jsone |
+ 1.23 MB |
+ 12.37x |
+
+
+ euneus |
+ 1.29 MB |
+ 12.96x |
+
+
+ jsx |
+ 2.51 MB |
+ 25.18x |
+
+
+
+
+
+__Input: UTF-8 escaped__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 10.39 K |
+ 96.28 µs |
+ ±9.92% |
+ 94.89 µs |
+ 129.03 µs |
+
+
+
+ thoas |
+ 1.70 K |
+ 587.76 µs |
+ ±21.71% |
+ 584.84 µs |
+ 869.23 µs |
+
+
+
+ Jason |
+ 1.69 K |
+ 591.31 µs |
+ ±21.81% |
+ 609.69 µs |
+ 883.39 µs |
+
+
+
+ euneus |
+ 1.44 K |
+ 694.80 µs |
+ ±20.80% |
+ 679.79 µs |
+ 987.82 µs |
+
+
+
+ jsone |
+ 1.30 K |
+ 770.74 µs |
+ ±11.92% |
+ 770.04 µs |
+ 970.46 µs |
+
+
+
+ jsx |
+ 1.17 K |
+ 851.19 µs |
+ ±15.43% |
+ 902.63 µs |
+ 1138.80 µs |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 10.39 K |
+ |
+
+
+
+ thoas |
+ 1.70 K |
+ 6.1x |
+
+
+
+ Jason |
+ 1.69 K |
+ 6.14x |
+
+
+
+ euneus |
+ 1.44 K |
+ 7.22x |
+
+
+
+ jsone |
+ 1.30 K |
+ 8.01x |
+
+
+
+ jsx |
+ 1.17 K |
+ 8.84x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 0.0703 KB |
+ |
+
+
+ thoas |
+ 283.73 KB |
+ 4035.22x |
+
+
+ Jason |
+ 283.80 KB |
+ 4036.22x |
+
+
+ euneus |
+ 430.97 KB |
+ 6129.33x |
+
+
+ jsone |
+ 741.67 KB |
+ 10548.22x |
+
+
+ jsx |
+ 824.53 KB |
+ 11726.67x |
+
+
+
+
+
+__Input: UTF-8 unescaped__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 18.08 K |
+ 55.30 µs |
+ ±19.51% |
+ 54.30 µs |
+ 77.63 µs |
+
+
+
+ euneus |
+ 10.34 K |
+ 96.68 µs |
+ ±52.46% |
+ 88.24 µs |
+ 390.27 µs |
+
+
+
+ Jason |
+ 10.21 K |
+ 97.96 µs |
+ ±51.20% |
+ 89.34 µs |
+ 388.14 µs |
+
+
+
+ thoas |
+ 9.65 K |
+ 103.68 µs |
+ ±47.29% |
+ 95.05 µs |
+ 392.01 µs |
+
+
+
+ jsone |
+ 9.45 K |
+ 105.78 µs |
+ ±70.90% |
+ 90.52 µs |
+ 547.02 µs |
+
+
+
+ jsx |
+ 6.57 K |
+ 152.19 µs |
+ ±46.70% |
+ 126.61 µs |
+ 496.78 µs |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 18.08 K |
+ |
+
+
+
+ euneus |
+ 10.34 K |
+ 1.75x |
+
+
+
+ Jason |
+ 10.21 K |
+ 1.77x |
+
+
+
+ thoas |
+ 9.65 K |
+ 1.87x |
+
+
+
+ jsone |
+ 9.45 K |
+ 1.91x |
+
+
+
+ jsx |
+ 6.57 K |
+ 2.75x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 0.0703 KB |
+ |
+
+
+ euneus |
+ 7.13 KB |
+ 101.33x |
+
+
+ Jason |
+ 6.87 KB |
+ 97.67x |
+
+
+ thoas |
+ 6.80 KB |
+ 96.67x |
+
+
+ jsone |
+ 33.67 KB |
+ 478.89x |
+
+
+ jsx |
+ 42.22 KB |
+ 600.44x |
+
+
\ No newline at end of file
diff --git a/euneus_bench/runs/decode_parsed_codecs_summary.md b/euneus_bench/runs/decode_parsed_codecs_summary.md
new file mode 100644
index 0000000..d0341ef
--- /dev/null
+++ b/euneus_bench/runs/decode_parsed_codecs_summary.md
@@ -0,0 +1,434 @@
+
+
+
+ Blockchain
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 5.99 K |
+ |
+
+
+
+ Jason |
+ 5.57 K |
+ 1.08x |
+
+
+
+ thoas |
+ 4.81 K |
+ 1.25x |
+
+
+
+ euneus |
+ 4.61 K |
+ 1.3x |
+
+
+
+ jsone |
+ 4.25 K |
+ 1.41x |
+
+
+
+ jsx |
+ 1.83 K |
+ 3.28x |
+
+
+
+
+ Giphy
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 962.95 |
+ |
+
+
+
+ thoas |
+ 489.11 |
+ 1.97x |
+
+
+
+ Jason |
+ 468.75 |
+ 2.05x |
+
+
+
+ jsone |
+ 279.45 |
+ 3.45x |
+
+
+
+ euneus |
+ 240.77 |
+ 4.0x |
+
+
+
+ jsx |
+ 165.48 |
+ 5.82x |
+
+
+
+
+ GitHub
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 2.69 K |
+ |
+
+
+
+ Jason |
+ 2.02 K |
+ 1.33x |
+
+
+
+ thoas |
+ 1.73 K |
+ 1.56x |
+
+
+
+ euneus |
+ 1.46 K |
+ 1.84x |
+
+
+
+ jsone |
+ 1.42 K |
+ 1.9x |
+
+
+
+ jsx |
+ 0.52 K |
+ 5.2x |
+
+
+
+
+ GovTrack
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 27.20 |
+ |
+
+
+
+ Jason |
+ 17.17 |
+ 1.58x |
+
+
+
+ thoas |
+ 15.87 |
+ 1.71x |
+
+
+
+ jsone |
+ 9.51 |
+ 2.86x |
+
+
+
+ euneus |
+ 8.73 |
+ 3.11x |
+
+
+
+ jsx |
+ 4.42 |
+ 6.15x |
+
+
+
+
+ Issue 90
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 49.71 |
+ |
+
+
+
+ Jason |
+ 25.27 |
+ 1.97x |
+
+
+
+ euneus |
+ 25.24 |
+ 1.97x |
+
+
+
+ jsone |
+ 23.30 |
+ 2.13x |
+
+
+
+ thoas |
+ 17.95 |
+ 2.77x |
+
+
+
+ jsx |
+ 9.95 |
+ 4.99x |
+
+
+
+
+ JSON Generator (Pretty)
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 1158.94 |
+ |
+
+
+
+ Jason |
+ 697.71 |
+ 1.66x |
+
+
+
+ thoas |
+ 626.52 |
+ 1.85x |
+
+
+
+ jsone |
+ 437.07 |
+ 2.65x |
+
+
+
+ euneus |
+ 405.09 |
+ 2.86x |
+
+
+
+ jsx |
+ 184.24 |
+ 6.29x |
+
+
+
+
+ JSON Generator
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 692.19 |
+ |
+
+
+
+ Jason |
+ 592.50 |
+ 1.17x |
+
+
+
+ thoas |
+ 542.55 |
+ 1.28x |
+
+
+
+ jsone |
+ 401.14 |
+ 1.73x |
+
+
+
+ euneus |
+ 363.17 |
+ 1.91x |
+
+
+
+ jsx |
+ 175.54 |
+ 3.94x |
+
+
+
+
+ Pokedex
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 1.33 K |
+ |
+
+
+
+ thoas |
+ 1.17 K |
+ 1.13x |
+
+
+
+ Jason |
+ 1.05 K |
+ 1.26x |
+
+
+
+ jsone |
+ 0.59 K |
+ 2.27x |
+
+
+
+ euneus |
+ 0.48 K |
+ 2.78x |
+
+
+
+ jsx |
+ 0.25 K |
+ 5.23x |
+
+
+
+
+ UTF-8 escaped
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 10.39 K |
+ |
+
+
+
+ thoas |
+ 1.70 K |
+ 6.1x |
+
+
+
+ Jason |
+ 1.69 K |
+ 6.14x |
+
+
+
+ euneus |
+ 1.44 K |
+ 7.22x |
+
+
+
+ jsone |
+ 1.30 K |
+ 8.01x |
+
+
+
+ jsx |
+ 1.17 K |
+ 8.84x |
+
+
+
+
+ UTF-8 unescaped
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 18.08 K |
+ |
+
+
+
+ euneus |
+ 10.34 K |
+ 1.75x |
+
+
+
+ Jason |
+ 10.21 K |
+ 1.77x |
+
+
+
+ thoas |
+ 9.65 K |
+ 1.87x |
+
+
+
+ jsone |
+ 9.45 K |
+ 1.91x |
+
+
+
+ jsx |
+ 6.57 K |
+ 2.75x |
+
+
+
+
+
diff --git a/euneus_bench/runs/decode_parsed_plugins_summary.md b/euneus_bench/runs/decode_parsed_plugins_summary.md
index bdd80c9..a9f0cdb 100644
--- a/euneus_bench/runs/decode_parsed_plugins_summary.md
+++ b/euneus_bench/runs/decode_parsed_plugins_summary.md
@@ -31,7 +31,7 @@
- euneus |
+ euneus |
3.59 K |
1.67x |
@@ -69,7 +69,7 @@
- euneus |
+ euneus |
278.42 |
3.56x |
@@ -119,7 +119,7 @@
- euneus |
+ euneus |
1.17 K |
2.3x |
@@ -163,7 +163,7 @@
- euneus |
+ euneus |
7.82 |
3.49x |
@@ -195,7 +195,7 @@
- euneus |
+ euneus |
25.23 |
1.97x |
@@ -251,7 +251,7 @@
- euneus |
+ euneus |
347.69 |
3.34x |
@@ -295,7 +295,7 @@
- euneus |
+ euneus |
317.16 |
2.2x |
@@ -339,7 +339,7 @@
- euneus |
+ euneus |
0.40 K |
3.34x |
@@ -377,7 +377,7 @@
- euneus |
+ euneus |
1.45 K |
7.18x |
@@ -409,7 +409,7 @@
- euneus |
+ euneus |
10.37 K |
1.74x |
diff --git a/euneus_bench/runs/decode_parsed_summary.md b/euneus_bench/runs/decode_parsed_summary.md
index 74a5b06..0fd4c42 100644
--- a/euneus_bench/runs/decode_parsed_summary.md
+++ b/euneus_bench/runs/decode_parsed_summary.md
@@ -19,7 +19,7 @@
- euneus |
+ euneus |
5.44 K |
1.09x |
@@ -57,7 +57,7 @@
- euneus |
+ euneus |
498.92 |
1.94x |
@@ -107,7 +107,7 @@
- euneus |
+ euneus |
1.94 K |
1.38x |
@@ -151,7 +151,7 @@
- euneus |
+ euneus |
15.93 |
1.71x |
@@ -195,7 +195,7 @@
- euneus |
+ euneus |
24.88 |
2.01x |
@@ -233,7 +233,7 @@
- euneus |
+ euneus |
693.50 |
1.62x |
@@ -283,7 +283,7 @@
- euneus |
+ euneus |
560.86 |
1.23x |
@@ -327,7 +327,7 @@
- euneus |
+ euneus |
1.08 K |
1.21x |
@@ -377,7 +377,7 @@
- euneus |
+ euneus |
1.44 K |
7.25x |
@@ -409,7 +409,7 @@
- euneus |
+ euneus |
10.22 K |
1.77x |
diff --git a/euneus_bench/runs/decode_summary.md b/euneus_bench/runs/decode_summary.md
index e69bf44..11d8ad4 100644
--- a/euneus_bench/runs/decode_summary.md
+++ b/euneus_bench/runs/decode_summary.md
@@ -13,7 +13,7 @@
- euneus |
+ euneus |
5.77 K |
1.03x |
@@ -63,7 +63,7 @@
- euneus |
+ euneus |
494.10 |
1.87x |
@@ -101,7 +101,7 @@
- euneus |
+ euneus |
2.09 K |
1.29x |
@@ -151,7 +151,7 @@
- euneus |
+ euneus |
16.79 |
1.61x |
@@ -189,7 +189,7 @@
- euneus |
+ euneus |
26.62 |
1.88x |
@@ -233,7 +233,7 @@
- euneus |
+ euneus |
707.45 |
1.62x |
@@ -277,7 +277,7 @@
- euneus |
+ euneus |
616.18 |
1.13x |
@@ -321,7 +321,7 @@
- euneus |
+ euneus |
1.17 K |
1.16x |
@@ -377,7 +377,7 @@
- euneus |
+ euneus |
1.47 K |
7.09x |
@@ -409,7 +409,7 @@
- euneus |
+ euneus |
10.44 K |
1.74x |
diff --git a/euneus_bench/runs/encode_parsed_codecs.md b/euneus_bench/runs/encode_parsed_codecs.md
new file mode 100644
index 0000000..1dd57bc
--- /dev/null
+++ b/euneus_bench/runs/encode_parsed_codecs.md
@@ -0,0 +1,1328 @@
+Benchmark
+
+Benchmark run from 2023-11-24 19:10:07.301687Z UTC
+
+## System
+
+Benchmark suite executing on the following system:
+
+
+
+ Operating System |
+ Linux |
+
+ CPU Information |
+ Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz |
+
+ Number of Available Cores |
+ 8 |
+
+ Available Memory |
+ 15.54 GB |
+
+ Elixir Version |
+ 1.16.0-dev |
+
+ Erlang Version |
+ 26.1 |
+
+
+
+## Configuration
+
+Benchmark suite executing with the following configuration:
+
+
+
+ :time |
+ 10 s |
+
+ :parallel |
+ 1 |
+
+ :warmup |
+ 1 s |
+
+
+
+## Statistics
+
+
+
+__Input: Blockchain__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 11.16 K |
+ 89.63 µs |
+ ±352.91% |
+ 61.97 µs |
+ 110.94 µs |
+
+
+
+ Jason |
+ 4.57 K |
+ 218.79 µs |
+ ±287.10% |
+ 110.75 µs |
+ 3536.71 µs |
+
+
+
+ euneus |
+ 3.94 K |
+ 254.01 µs |
+ ±266.56% |
+ 104.44 µs |
+ 3534.92 µs |
+
+
+
+ thoas |
+ 3.76 K |
+ 265.88 µs |
+ ±242.07% |
+ 131.39 µs |
+ 3548.34 µs |
+
+
+
+ jsone |
+ 2.50 K |
+ 399.54 µs |
+ ±207.92% |
+ 202.62 µs |
+ 3604.89 µs |
+
+
+
+ jsx |
+ 1.01 K |
+ 989.92 µs |
+ ±126.22% |
+ 484.00 µs |
+ 4152.43 µs |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 11.16 K |
+ |
+
+
+
+ Jason |
+ 4.57 K |
+ 2.44x |
+
+
+
+ euneus |
+ 3.94 K |
+ 2.83x |
+
+
+
+ thoas |
+ 3.76 K |
+ 2.97x |
+
+
+
+ jsone |
+ 2.50 K |
+ 4.46x |
+
+
+
+ jsx |
+ 1.01 K |
+ 11.04x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 8.03 KB |
+ |
+
+
+ Jason |
+ 78.91 KB |
+ 9.82x |
+
+
+ euneus |
+ 99.90 KB |
+ 12.44x |
+
+
+ thoas |
+ 89.41 KB |
+ 11.13x |
+
+
+ jsone |
+ 179.23 KB |
+ 22.32x |
+
+
+ jsx |
+ 405.79 KB |
+ 50.53x |
+
+
+
+
+
+__Input: Giphy__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 1159.45 |
+ 0.86 ms |
+ ±103.36% |
+ 0.66 ms |
+ 4.48 ms |
+
+
+
+ Jason |
+ 430.25 |
+ 2.32 ms |
+ ±76.80% |
+ 1.08 ms |
+ 4.92 ms |
+
+
+
+ thoas |
+ 401.71 |
+ 2.49 ms |
+ ±73.06% |
+ 1.23 ms |
+ 5.42 ms |
+
+
+
+ euneus |
+ 347.78 |
+ 2.88 ms |
+ ±63.51% |
+ 4.19 ms |
+ 5.20 ms |
+
+
+
+ jsone |
+ 212.69 |
+ 4.70 ms |
+ ±33.15% |
+ 5.33 ms |
+ 8.41 ms |
+
+
+
+ jsx |
+ 79.29 |
+ 12.61 ms |
+ ±1.83% |
+ 12.56 ms |
+ 13.47 ms |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 1159.45 |
+ |
+
+
+
+ Jason |
+ 430.25 |
+ 2.69x |
+
+
+
+ thoas |
+ 401.71 |
+ 2.89x |
+
+
+
+ euneus |
+ 347.78 |
+ 3.33x |
+
+
+
+ jsone |
+ 212.69 |
+ 5.45x |
+
+
+
+ jsx |
+ 79.29 |
+ 14.62x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 0.114 MB |
+ |
+
+
+ Jason |
+ 0.84 MB |
+ 7.38x |
+
+
+ thoas |
+ 0.84 MB |
+ 7.38x |
+
+
+ euneus |
+ 1.06 MB |
+ 9.31x |
+
+
+ jsone |
+ 2.19 MB |
+ 19.18x |
+
+
+ jsx |
+ 4.81 MB |
+ 42.19x |
+
+
+
+
+
+__Input: GitHub__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 3.54 K |
+ 282.09 µs |
+ ±175.54% |
+ 216.08 µs |
+ 3909.01 µs |
+
+
+
+ Jason |
+ 1.52 K |
+ 659.04 µs |
+ ±158.60% |
+ 299.66 µs |
+ 3818.23 µs |
+
+
+
+ thoas |
+ 1.29 K |
+ 777.66 µs |
+ ±138.73% |
+ 406.75 µs |
+ 3960.35 µs |
+
+
+
+ euneus |
+ 1.28 K |
+ 782.76 µs |
+ ±144.00% |
+ 373.75 µs |
+ 3831.46 µs |
+
+
+
+ jsone |
+ 0.66 K |
+ 1513.46 µs |
+ ±96.41% |
+ 841.94 µs |
+ 4326.62 µs |
+
+
+
+ jsx |
+ 0.197 K |
+ 5066.27 µs |
+ ±3.33% |
+ 5042.97 µs |
+ 5569.72 µs |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 3.54 K |
+ |
+
+
+
+ Jason |
+ 1.52 K |
+ 2.34x |
+
+
+
+ thoas |
+ 1.29 K |
+ 2.76x |
+
+
+
+ euneus |
+ 1.28 K |
+ 2.77x |
+
+
+
+ jsone |
+ 0.66 K |
+ 5.37x |
+
+
+
+ jsx |
+ 0.197 K |
+ 17.96x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 42.85 KB |
+ |
+
+
+ Jason |
+ 221.14 KB |
+ 5.16x |
+
+
+ thoas |
+ 228.15 KB |
+ 5.32x |
+
+
+ euneus |
+ 294.34 KB |
+ 6.87x |
+
+
+ jsone |
+ 682.82 KB |
+ 15.93x |
+
+
+ jsx |
+ 1422.55 KB |
+ 33.2x |
+
+
+
+
+
+__Input: GovTrack__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 52.65 |
+ 18.99 ms |
+ ±9.45% |
+ 18.58 ms |
+ 27.46 ms |
+
+
+
+ euneus |
+ 20.02 |
+ 49.94 ms |
+ ±6.13% |
+ 49.86 ms |
+ 63.82 ms |
+
+
+
+ Jason |
+ 17.97 |
+ 55.66 ms |
+ ±8.34% |
+ 56.48 ms |
+ 63.47 ms |
+
+
+
+ thoas |
+ 16.60 |
+ 60.24 ms |
+ ±42.16% |
+ 54.22 ms |
+ 125.66 ms |
+
+
+
+ jsone |
+ 8.54 |
+ 117.12 ms |
+ ±9.64% |
+ 119.14 ms |
+ 127.29 ms |
+
+
+
+ jsx |
+ 3.06 |
+ 327.00 ms |
+ ±2.79% |
+ 326.38 ms |
+ 374.24 ms |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 52.65 |
+ |
+
+
+
+ euneus |
+ 20.02 |
+ 2.63x |
+
+
+
+ Jason |
+ 17.97 |
+ 2.93x |
+
+
+
+ thoas |
+ 16.60 |
+ 3.17x |
+
+
+
+ jsone |
+ 8.54 |
+ 6.17x |
+
+
+
+ jsx |
+ 3.06 |
+ 17.22x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 3.30 MB |
+ |
+
+
+ euneus |
+ 25.36 MB |
+ 7.67x |
+
+
+ Jason |
+ 18.90 MB |
+ 5.72x |
+
+
+ thoas |
+ 20.67 MB |
+ 6.26x |
+
+
+ jsone |
+ 45.34 MB |
+ 13.72x |
+
+
+ jsx |
+ 98.13 MB |
+ 29.7x |
+
+
+
+
+
+__Input: Issue 90__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 36.57 |
+ 27.35 ms |
+ ±1.40% |
+ 27.26 ms |
+ 29.09 ms |
+
+
+
+ Jason |
+ 27.45 |
+ 36.43 ms |
+ ±5.46% |
+ 37.42 ms |
+ 40.50 ms |
+
+
+
+ euneus |
+ 26.06 |
+ 38.37 ms |
+ ±5.76% |
+ 39.22 ms |
+ 44.04 ms |
+
+
+
+ thoas |
+ 16.79 |
+ 59.55 ms |
+ ±3.29% |
+ 60.52 ms |
+ 63.60 ms |
+
+
+
+ jsone |
+ 16.68 |
+ 59.94 ms |
+ ±2.99% |
+ 60.81 ms |
+ 62.63 ms |
+
+
+
+ jsx |
+ 8.76 |
+ 114.19 ms |
+ ±2.13% |
+ 114.60 ms |
+ 119.79 ms |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 36.57 |
+ |
+
+
+
+ Jason |
+ 27.45 |
+ 1.33x |
+
+
+
+ euneus |
+ 26.06 |
+ 1.4x |
+
+
+
+ thoas |
+ 16.79 |
+ 2.18x |
+
+
+
+ jsone |
+ 16.68 |
+ 2.19x |
+
+
+
+ jsx |
+ 8.76 |
+ 4.18x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 0.0125 MB |
+ |
+
+
+ Jason |
+ 0.81 MB |
+ 65.33x |
+
+
+ euneus |
+ 1.08 MB |
+ 86.73x |
+
+
+ thoas |
+ 0.82 MB |
+ 66.05x |
+
+
+ jsone |
+ 2.64 MB |
+ 212.2x |
+
+
+ jsx |
+ 4.57 MB |
+ 366.69x |
+
+
+
+
+
+__Input: JSON Generator__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 1179.26 |
+ 0.85 ms |
+ ±95.28% |
+ 0.67 ms |
+ 4.58 ms |
+
+
+
+ euneus |
+ 419.31 |
+ 2.38 ms |
+ ±74.21% |
+ 1.18 ms |
+ 4.89 ms |
+
+
+
+ Jason |
+ 410.98 |
+ 2.43 ms |
+ ±80.35% |
+ 1.06 ms |
+ 7.74 ms |
+
+
+
+ thoas |
+ 404.67 |
+ 2.47 ms |
+ ±74.73% |
+ 1.25 ms |
+ 5.90 ms |
+
+
+
+ jsone |
+ 271.34 |
+ 3.69 ms |
+ ±49.18% |
+ 4.81 ms |
+ 8.08 ms |
+
+
+
+ jsx |
+ 98.15 |
+ 10.19 ms |
+ ±23.08% |
+ 8.89 ms |
+ 13.16 ms |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 1179.26 |
+ |
+
+
+
+ euneus |
+ 419.31 |
+ 2.81x |
+
+
+
+ Jason |
+ 410.98 |
+ 2.87x |
+
+
+
+ thoas |
+ 404.67 |
+ 2.91x |
+
+
+
+ jsone |
+ 271.34 |
+ 4.35x |
+
+
+
+ jsx |
+ 98.15 |
+ 12.02x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 110.68 KB |
+ |
+
+
+ euneus |
+ 957.37 KB |
+ 8.65x |
+
+
+ Jason |
+ 778.17 KB |
+ 7.03x |
+
+
+ thoas |
+ 769.38 KB |
+ 6.95x |
+
+
+ jsone |
+ 1711.06 KB |
+ 15.46x |
+
+
+ jsx |
+ 3601.87 KB |
+ 32.54x |
+
+
+
+
+
+__Input: Pokedex__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 1682.07 |
+ 0.59 ms |
+ ±117.24% |
+ 0.46 ms |
+ 4.05 ms |
+
+
+
+ Jason |
+ 628.70 |
+ 1.59 ms |
+ ±102.13% |
+ 0.70 ms |
+ 4.41 ms |
+
+
+
+ thoas |
+ 611.61 |
+ 1.64 ms |
+ ±97.86% |
+ 0.77 ms |
+ 4.43 ms |
+
+
+
+ euneus |
+ 489.98 |
+ 2.04 ms |
+ ±88.12% |
+ 0.87 ms |
+ 4.97 ms |
+
+
+
+ jsone |
+ 320.34 |
+ 3.12 ms |
+ ±58.61% |
+ 4.37 ms |
+ 7.83 ms |
+
+
+
+ jsx |
+ 108.05 |
+ 9.25 ms |
+ ±24.24% |
+ 7.67 ms |
+ 13.97 ms |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 1682.07 |
+ |
+
+
+
+ Jason |
+ 628.70 |
+ 2.68x |
+
+
+
+ thoas |
+ 611.61 |
+ 2.75x |
+
+
+
+ euneus |
+ 489.98 |
+ 3.43x |
+
+
+
+ jsone |
+ 320.34 |
+ 5.25x |
+
+
+
+ jsx |
+ 108.05 |
+ 15.57x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 51.82 KB |
+ |
+
+
+ Jason |
+ 658.96 KB |
+ 12.72x |
+
+
+ thoas |
+ 670.49 KB |
+ 12.94x |
+
+
+ euneus |
+ 826.38 KB |
+ 15.95x |
+
+
+ jsone |
+ 1490.80 KB |
+ 28.77x |
+
+
+ jsx |
+ 3532.86 KB |
+ 68.18x |
+
+
+
+
+
+__Input: UTF-8 unescaped__
+
+Run Time
+
+
+
+ Name |
+ IPS |
+ Average |
+ Devitation |
+ Median |
+ 99th % |
+
+
+
+ jiffy |
+ 14.29 K |
+ 70.00 µs |
+ ±32.99% |
+ 68.83 µs |
+ 92.27 µs |
+
+
+
+ Jason |
+ 10.10 K |
+ 99.01 µs |
+ ±254.94% |
+ 79.89 µs |
+ 120.69 µs |
+
+
+
+ euneus |
+ 9.53 K |
+ 104.96 µs |
+ ±253.78% |
+ 82.84 µs |
+ 130.21 µs |
+
+
+
+ thoas |
+ 9.08 K |
+ 110.12 µs |
+ ±223.33% |
+ 91.30 µs |
+ 133.21 µs |
+
+
+
+ jsx |
+ 4.77 K |
+ 209.74 µs |
+ ±215.15% |
+ 153.19 µs |
+ 3606.07 µs |
+
+
+
+ jsone |
+ 1.84 K |
+ 543.04 µs |
+ ±172.96% |
+ 260.68 µs |
+ 3477.35 µs |
+
+
+
+
+
+Run Time Comparison
+
+
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 14.29 K |
+ |
+
+
+
+ Jason |
+ 10.10 K |
+ 1.41x |
+
+
+
+ euneus |
+ 9.53 K |
+ 1.5x |
+
+
+
+ thoas |
+ 9.08 K |
+ 1.57x |
+
+
+
+ jsx |
+ 4.77 K |
+ 3.0x |
+
+
+
+ jsone |
+ 1.84 K |
+ 7.76x |
+
+
+
+
+
+
+Memory Usage
+
+
+
+ Name |
+ Average |
+ Factor |
+
+
+ jiffy |
+ 0.70 KB |
+ |
+
+
+ Jason |
+ 6.02 KB |
+ 8.66x |
+
+
+ euneus |
+ 8.57 KB |
+ 12.33x |
+
+
+ thoas |
+ 5.98 KB |
+ 8.6x |
+
+
+ jsx |
+ 41.10 KB |
+ 59.11x |
+
+
+ jsone |
+ 207.50 KB |
+ 298.43x |
+
+
\ No newline at end of file
diff --git a/euneus_bench/runs/encode_parsed_codecs_summary.md b/euneus_bench/runs/encode_parsed_codecs_summary.md
new file mode 100644
index 0000000..982922a
--- /dev/null
+++ b/euneus_bench/runs/encode_parsed_codecs_summary.md
@@ -0,0 +1,348 @@
+
+
+
+ Blockchain
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 11.16 K |
+ |
+
+
+
+ Jason |
+ 4.57 K |
+ 2.44x |
+
+
+
+ euneus |
+ 3.94 K |
+ 2.83x |
+
+
+
+ thoas |
+ 3.76 K |
+ 2.97x |
+
+
+
+ jsone |
+ 2.50 K |
+ 4.46x |
+
+
+
+ jsx |
+ 1.01 K |
+ 11.04x |
+
+
+
+
+ Giphy
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 1159.45 |
+ |
+
+
+
+ Jason |
+ 430.25 |
+ 2.69x |
+
+
+
+ thoas |
+ 401.71 |
+ 2.89x |
+
+
+
+ euneus |
+ 347.78 |
+ 3.33x |
+
+
+
+ jsone |
+ 212.69 |
+ 5.45x |
+
+
+
+ jsx |
+ 79.29 |
+ 14.62x |
+
+
+
+
+ GitHub
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 3.54 K |
+ |
+
+
+
+ Jason |
+ 1.52 K |
+ 2.34x |
+
+
+
+ thoas |
+ 1.29 K |
+ 2.76x |
+
+
+
+ euneus |
+ 1.28 K |
+ 2.77x |
+
+
+
+ jsone |
+ 0.66 K |
+ 5.37x |
+
+
+
+ jsx |
+ 0.197 K |
+ 17.96x |
+
+
+
+
+ GovTrack
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 52.65 |
+ |
+
+
+
+ euneus |
+ 20.02 |
+ 2.63x |
+
+
+
+ Jason |
+ 17.97 |
+ 2.93x |
+
+
+
+ thoas |
+ 16.60 |
+ 3.17x |
+
+
+
+ jsone |
+ 8.54 |
+ 6.17x |
+
+
+
+ jsx |
+ 3.06 |
+ 17.22x |
+
+
+
+
+ Issue 90
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 36.57 |
+ |
+
+
+
+ Jason |
+ 27.45 |
+ 1.33x |
+
+
+
+ euneus |
+ 26.06 |
+ 1.4x |
+
+
+
+ thoas |
+ 16.79 |
+ 2.18x |
+
+
+
+ jsone |
+ 16.68 |
+ 2.19x |
+
+
+
+ jsx |
+ 8.76 |
+ 4.18x |
+
+
+
+
+ JSON Generator
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 1179.26 |
+ |
+
+
+
+ euneus |
+ 419.31 |
+ 2.81x |
+
+
+
+ Jason |
+ 410.98 |
+ 2.87x |
+
+
+
+ thoas |
+ 404.67 |
+ 2.91x |
+
+
+
+ jsone |
+ 271.34 |
+ 4.35x |
+
+
+
+ jsx |
+ 98.15 |
+ 12.02x |
+
+
+
+
+ Pokedex
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 1682.07 |
+ |
+
+
+
+ Jason |
+ 628.70 |
+ 2.68x |
+
+
+
+ thoas |
+ 611.61 |
+ 2.75x |
+
+
+
+ euneus |
+ 489.98 |
+ 3.43x |
+
+
+
+ jsone |
+ 320.34 |
+ 5.25x |
+
+
+
+ jsx |
+ 108.05 |
+ 15.57x |
+
+
+
+
+ UTF-8 unescaped
+
+ Name |
+ IPS |
+ Slower |
+
+ jiffy |
+ 14.29 K |
+ |
+
+
+
+ Jason |
+ 10.10 K |
+ 1.41x |
+
+
+
+ euneus |
+ 9.53 K |
+ 1.5x |
+
+
+
+ thoas |
+ 9.08 K |
+ 1.57x |
+
+
+
+ jsx |
+ 4.77 K |
+ 3.0x |
+
+
+
+ jsone |
+ 1.84 K |
+ 7.76x |
+
+
+
+
+
diff --git a/euneus_bench/runs/encode_parsed_plugins_summary.md b/euneus_bench/runs/encode_parsed_plugins_summary.md
index a5973df..43f627e 100644
--- a/euneus_bench/runs/encode_parsed_plugins_summary.md
+++ b/euneus_bench/runs/encode_parsed_plugins_summary.md
@@ -19,7 +19,7 @@
- euneus |
+ euneus |
3.79 K |
2.97x |
@@ -69,7 +69,7 @@
- euneus |
+ euneus |
332.49 |
3.53x |
@@ -113,7 +113,7 @@
- euneus |
+ euneus |
1.22 K |
2.67x |
@@ -157,7 +157,7 @@
- euneus |
+ euneus |
16.66 |
3.13x |
@@ -195,7 +195,7 @@
- euneus |
+ euneus |
24.12 |
1.52x |
@@ -245,7 +245,7 @@
- euneus |
+ euneus |
397.61 |
2.99x |
@@ -289,7 +289,7 @@
- euneus |
+ euneus |
470.18 |
3.51x |
@@ -327,7 +327,7 @@
- euneus |
+ euneus |
9.41 K |
1.53x |
diff --git a/euneus_bench/runs/encode_parsed_summary.md b/euneus_bench/runs/encode_parsed_summary.md
index eb1a595..2523d02 100644
--- a/euneus_bench/runs/encode_parsed_summary.md
+++ b/euneus_bench/runs/encode_parsed_summary.md
@@ -19,7 +19,7 @@
- euneus |
+ euneus |
3.92 K |
2.84x |
@@ -69,7 +69,7 @@
- euneus |
+ euneus |
335.54 |
3.47x |
@@ -113,7 +113,7 @@
- euneus |
+ euneus |
1.25 K |
2.81x |
@@ -151,7 +151,7 @@
- euneus |
+ euneus |
17.40 |
2.99x |
@@ -195,7 +195,7 @@
- euneus |
+ euneus |
24.04 |
1.53x |
@@ -233,7 +233,7 @@
- euneus |
+ euneus |
409.80 |
2.87x |
@@ -289,7 +289,7 @@
- euneus |
+ euneus |
487.64 |
3.4x |
@@ -327,7 +327,7 @@
- euneus |
+ euneus |
9.27 K |
1.55x |
diff --git a/euneus_bench/runs/encode_summary.md b/euneus_bench/runs/encode_summary.md
index b4c4e23..8907eb4 100644
--- a/euneus_bench/runs/encode_summary.md
+++ b/euneus_bench/runs/encode_summary.md
@@ -19,7 +19,7 @@
- euneus |
+ euneus |
4.49 K |
2.48x |
@@ -63,7 +63,7 @@
- euneus |
+ euneus |
427.23 |
2.72x |
@@ -107,7 +107,7 @@
- euneus |
+ euneus |
1.45 K |
2.44x |
@@ -157,7 +157,7 @@
- euneus |
+ euneus |
14.72 |
3.53x |
@@ -195,7 +195,7 @@
- euneus |
+ euneus |
23.24 |
1.58x |
@@ -233,7 +233,7 @@
- euneus |
+ euneus |
417.78 |
2.85x |
@@ -277,7 +277,7 @@
- euneus |
+ euneus |
644.19 |
2.59x |
@@ -327,7 +327,7 @@
- euneus |
+ euneus |
9.40 K |
1.52x |
diff --git a/euneus_bench/script/decode_parsed_plugins.exs b/euneus_bench/script/decode_parsed_codecs.exs
similarity index 78%
rename from euneus_bench/script/decode_parsed_plugins.exs
rename to euneus_bench/script/decode_parsed_codecs.exs
index fc8908c..7024c2b 100644
--- a/euneus_bench/script/decode_parsed_plugins.exs
+++ b/euneus_bench/script/decode_parsed_codecs.exs
@@ -2,14 +2,17 @@ Code.eval_file("helper.exs", "./script")
opts =
:euneus.parse_decode_opts(%{
- plugins: [
- :datetime,
- :timestamp,
- :pid,
- :port,
- :reference,
- :inet
- ]
+ string: %{
+ codecs: [
+ :datetime,
+ :timestamp,
+ :ipv4,
+ :ipv6,
+ :pid,
+ :port,
+ :reference
+ ]
+ }
})
jobs = %{
@@ -42,11 +45,11 @@ inputs =
end
EuneusBench.Helper.run(
- "decode_parsed_plugins",
+ "decode_parsed_codecs",
jobs,
inputs,
%{
- # markdown: true,
+ markdown: true
# graph: true,
# save: true,
# parallel: 1,
diff --git a/euneus_bench/script/encode_parsed_plugins.exs b/euneus_bench/script/encode_parsed_codecs.exs
similarity index 77%
rename from euneus_bench/script/encode_parsed_plugins.exs
rename to euneus_bench/script/encode_parsed_codecs.exs
index e29bd1c..e15362e 100644
--- a/euneus_bench/script/encode_parsed_plugins.exs
+++ b/euneus_bench/script/encode_parsed_codecs.exs
@@ -2,15 +2,19 @@ Code.eval_file("helper.exs", "./script")
opts =
:euneus.parse_encode_opts(%{
- plugins: [
- :datetime,
- :timestamp,
- :pid,
- :port,
- :proplist,
- :reference,
- :inet
- ]
+ list: %{
+ codecs: [
+ :proplist
+ ]
+ },
+ tuple: %{
+ codecs: [
+ :datetime,
+ :timestamp,
+ :ipv4,
+ :ipv6
+ ]
+ }
})
jobs = %{
@@ -42,11 +46,11 @@ inputs =
end
EuneusBench.Helper.run(
- "encode_parsed_plugins",
+ "encode_parsed_codecs",
jobs,
inputs,
%{
- # markdown: true,
+ markdown: true
# graph: true,
# save: true,
# parallel: 1,
diff --git a/euneus_test/test/euneus_decoder_test.exs b/euneus_test/test/euneus_decoder_test.exs
index b6c8d5f..bc02529 100644
--- a/euneus_test/test/euneus_decoder_test.exs
+++ b/euneus_test/test/euneus_decoder_test.exs
@@ -81,13 +81,18 @@ defmodule EuneusTest.EuneusDecoderTest do
end
test "copying strings on decode" do
- assert decode!("{}", %{values: :copy}) == %{}
+ assert decode!("{}", %{string: %{codecs: [:copy]}}) == %{}
as = :binary.copy("a", 101)
bs = :binary.copy("b", 102)
# Copy decode, copies the key
assert [{key, value}] =
- :maps.to_list(decode!(~s({"#{as}": "#{bs}"}), %{values: :copy, keys: :copy}))
+ :maps.to_list(
+ decode!(~s({"#{as}": "#{bs}"}), %{
+ string: %{codecs: [:copy]},
+ object: %{keys: :copy}
+ })
+ )
assert key == as
assert value == bs
diff --git a/euneus_test/test/euneus_encoder_test.exs b/euneus_test/test/euneus_encoder_test.exs
index acf11a1..08144c8 100644
--- a/euneus_test/test/euneus_encoder_test.exs
+++ b/euneus_test/test/euneus_encoder_test.exs
@@ -2,7 +2,7 @@ defmodule EuneusTest.EuneusEncoderTest do
use ExUnit.Case, async: true
test "atom" do
- assert encode!(:undefined) == "null"
+ assert encode!(:null) == "null"
assert encode!(true) == "true"
assert encode!(false) == "false"
assert encode!(:poison) == ~s("poison")
@@ -25,17 +25,17 @@ defmodule EuneusTest.EuneusEncoderTest do
assert encode!("\"") == ~s("\\"")
assert encode!("\0") == ~s("\\u0000")
assert encode!(<<31>>) == ~s("\\u001F")
- assert encode!("☃a", %{escaper: :unicode}) == ~s("\\u2603a")
- assert encode!("𝄞b", %{escaper: :unicode}) == ~s("\\uD834\\uDD1Eb")
- assert encode!("\u2028\u2029abc", %{escaper: :javascript}) == ~s("\\u2028\\u2029abc")
- assert encode!("", %{escaper: :html}) == ~s("<\\/script>")
+ assert encode!("☃a", %{escape: :unicode}) == ~s("\\u2603a")
+ assert encode!("𝄞b", %{escape: :unicode}) == ~s("\\uD834\\uDD1Eb")
+ assert encode!("\u2028\u2029abc", %{escape: :javascript}) == ~s("\\u2028\\u2029abc")
+ assert encode!("", %{escape: :html}) == ~s("<\\/script>")
- assert encode!(~s(), %{escaper: :html}) ==
+ assert encode!(~s(), %{escape: :html}) ==
~s("">>, #{
- escaper => html
+ escape => html
}),
{ok, <<"\"\\u2028\\u2029\"">>} = encode_to_bin(
unicode:characters_to_binary([8232,8233]), #{
- escaper => javascript
+ escape => javascript
}),
{ok, <<"\"\\u2603\"">>} = encode_to_bin(<<"☃"/utf8>>, #{
- escaper => unicode
+ escape => unicode
}),
{ok, <<"bar">>} = encode(foo, #{
- escaper => fun (<<"foo">>, _Opts) ->
+ escape => fun (<<"foo">>, _Opts) ->
<<"bar">>
end
}).
-error_handler(Config) when is_list(Config) ->
+handle_error(Config) when is_list(Config) ->
{error, bar} = encode(foo, #{
- escaper => fun (<<"foo">>, _Opts) ->
+ escape => fun (<<"foo">>, _Opts) ->
throw(foo)
end,
- error_handler => fun (throw, foo, _Stacktrace) ->
+ handle_error => fun (throw, foo, _Stacktrace) ->
{error, bar}
end
}).
-plugins(Config) when is_list(Config) ->
+codecs(Config) when is_list(Config) ->
+ Opts = euneus_encoder:parse_options_to_settings(#{}),
{halt, [$", <<"test::foo">>, $"]} =
- euneus_test_plugin:encode({test, foo}, euneus_encoder:parse_opts(#{})),
+ euneus_test_codec:encode({test, foo}, foo, Opts),
next =
- euneus_test_plugin:encode({test, bar}, euneus_encoder:parse_opts(#{})),
- {error, {unsupported_type, {test, foo}}} =
- euneus_encoder:encode({test, foo}, #{}),
- {ok, [$", <<"test::foo">>, $"]} =
- euneus_encoder:encode({test, foo}, #{plugins => [euneus_test_plugin]}).
+ euneus_test_codec:encode({test, bar}, bar, Opts),
+ {ok, <<"[\"test\",\"foo\"]">>} = encode_to_bin({test, foo}, #{}),
+ {ok, <<"\"test::foo\"">>} =
+ encode_to_bin({test, foo}, #{
+ tuple => #{
+ codecs => [{euneus_test_codec, foo}]
+ }
+ }).
%%%=====================================================================
%%% Support functions
diff --git a/test/support/euneus_test_plugin.erl b/test/support/euneus_test_codec.erl
similarity index 71%
rename from test/support/euneus_test_plugin.erl
rename to test/support/euneus_test_codec.erl
index 246aa4c..9dab913 100644
--- a/test/support/euneus_test_plugin.erl
+++ b/test/support/euneus_test_codec.erl
@@ -1,7 +1,7 @@
%%%---------------------------------------------------------------------
%%% @copyright 2023 William Fank Thomé
%%% @author William Fank Thomé
-%%% @doc Test plugin.
+%%% @doc Test codec.
%%%
%%% Copyright 2023 William Fank Thomé
%%%
@@ -19,24 +19,27 @@
%%%
%%% @end
%%%---------------------------------------------------------------------
--module(euneus_test_plugin).
+-module(euneus_test_codec).
--behaviour(euneus_plugin).
+-behaviour(euneus_codec).
-%% euneus_plugin callbacks
+%% euneus_codec callbacks
--export([ encode/2, decode/2 ]).
+-export([ init/1, encode/3, decode/3 ]).
%%%=====================================================================
-%%% euneus_plugin callbacks
+%%% euneus_codec callbacks
%%%=====================================================================
-encode({test, foo}, Opts) ->
- {halt, euneus_encoder:encode_binary(<<"test::foo">>, Opts)};
-encode(_Term, _Opts) ->
+init(Opts) ->
+ {ok, Opts}.
+
+encode({test, foo}, foo, Settings) ->
+ {halt, euneus_encoder:encode_binary(<<"test::foo">>, Settings)};
+encode(_Term, _Opts, _Settings) ->
next.
-decode(<<"test::foo">>, _Opts) ->
+decode(<<"test::foo">>, foo, _Settings) ->
{halt, {test, foo}};
-decode(_Bin, _Opts) ->
+decode(_Bin, _Opts, _Settings) ->
next.