Jason benches

July 7, 2018 · View on GitHub

Operating System: macOS" CPU Information: Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz Number of Available Cores: 8 Available memory: 16 GB Elixir 1.7.0-dev Erlang 21.0

Benchmark suite executing with the following configuration: warmup: 5 s time: 30 s memory time: 1 s parallel: 1 inputs: Blockchain, Giphy, GitHub, GovTrack, Issue 90, JSON Generator, JSON Generator (Pretty), Pokedex, UTF-8 escaped, UTF-8 unescaped Estimated total run time: 42 min

With input Blockchain

Name ips average deviation median 99th % jiffy 3.18 K 314.79 μs ±37.55% 282 μs 840 μs Jason 2.30 K 434.06 μs ±25.97% 401 μs 860 μs jsone 1.57 K 636.05 μs ±14.50% 634 μs 913 μs Tiny 1.38 K 723.70 μs ±12.66% 720 μs 975 μs Poison 1.24 K 803.48 μs ±12.08% 788 μs 1040 μs JSX 0.99 K 1012.25 μs ±13.43% 1004 μs 1428.19 μs JSON 0.56 K 1775.23 μs ±10.56% 1754 μs 2310 μs

Comparison: jiffy 3.18 K Jason 2.30 K - 1.38x slower jsone 1.57 K - 2.02x slower Tiny 1.38 K - 2.30x slower Poison 1.24 K - 2.55x slower JSX 0.99 K - 3.22x slower JSON 0.56 K - 5.64x slower

Memory usage statistics:

Name Memory usage jiffy 83.79 KB Jason 84.32 KB - 1.01x memory usage jsone 240.68 KB - 2.87x memory usage Tiny 324.47 KB - 3.87x memory usage Poison 383.97 KB - 4.58x memory usage JSX 523.71 KB - 6.25x memory usage JSON 1291.73 KB - 15.42x memory usage

All measurements for memory usage were the same

With input Giphy

Name ips average deviation median 99th % jiffy 385.37 2.59 ms ±1.86% 2.59 ms 2.80 ms Jason 246.20 4.06 ms ±8.56% 4.03 ms 4.93 ms jsone 131.57 7.60 ms ±3.37% 7.56 ms 8.33 ms Tiny 119.25 8.39 ms ±3.96% 8.32 ms 9.36 ms Poison 116.36 8.59 ms ±3.81% 8.54 ms 9.96 ms JSX 82.02 12.19 ms ±3.80% 12.07 ms 13.86 ms JSON 50.19 19.92 ms ±3.38% 19.88 ms 21.63 ms

Comparison: jiffy 385.37 Jason 246.20 - 1.57x slower jsone 131.57 - 2.93x slower Tiny 119.25 - 3.23x slower Poison 116.36 - 3.31x slower JSX 82.02 - 4.70x slower JSON 50.19 - 7.68x slower

Memory usage statistics:

Name Memory usage jiffy 0.93 MB Jason 1.14 MB - 1.23x memory usage jsone 3.44 MB - 3.72x memory usage Tiny 4.32 MB - 4.67x memory usage Poison 4.29 MB - 4.63x memory usage JSX 6.98 MB - 7.54x memory usage JSON 10.44 MB - 11.28x memory usage

All measurements for memory usage were the same

With input GitHub

Name ips average deviation median 99th % jiffy 1112.43 0.90 ms ±19.56% 0.89 ms 1.26 ms Jason 812.98 1.23 ms ±9.25% 1.22 ms 1.67 ms jsone 574.77 1.74 ms ±6.48% 1.74 ms 2.12 ms Tiny 529.64 1.89 ms ±7.22% 1.87 ms 2.26 ms Poison 460.92 2.17 ms ±5.48% 2.16 ms 2.52 ms JSX 276.01 3.62 ms ±5.53% 3.59 ms 4.36 ms JSON 161.58 6.19 ms ±5.74% 6.19 ms 7.11 ms

Comparison: jiffy 1112.43 Jason 812.98 - 1.37x slower jsone 574.77 - 1.94x slower Tiny 529.64 - 2.10x slower Poison 460.92 - 2.41x slower JSX 276.01 - 4.03x slower JSON 161.58 - 6.88x slower

Memory usage statistics:

Name average deviation median 99th % jiffy 360.85 KB ±0.00% 360.85 KB 360.85 KB Jason 185.59 KB ±0.00% 185.59 KB 185.59 KB jsone 655.55 KB ±0.00% 655.55 KB 655.55 KB Tiny 740.50 KB ±0.57% 741.02 KB 741.02 KB Poison 934.29 KB ±0.21% 934.38 KB 934.38 KB JSX 2105.88 KB ±0.00% 2105.88 KB 2105.88 KB JSON 4346.89 KB ±0.00% 4346.89 KB 4346.89 KB

Comparison: jiffy 360.85 KB Jason 185.59 KB - 0.51x memory usage jsone 655.55 KB - 1.82x memory usage Tiny 741.02 KB - 2.05x memory usage Poison 934.38 KB - 2.59x memory usage JSX 2105.88 KB - 5.84x memory usage JSON 4346.89 KB - 12.05x memory usage

With input GovTrack

Name ips average deviation median 99th % jiffy 10.29 97.22 ms ±1.69% 97.38 ms 100.70 ms Jason 8.50 117.68 ms ±4.19% 118.08 ms 136.31 ms jsone 4.74 210.88 ms ±1.20% 211.10 ms 215.89 ms Tiny 4.14 241.58 ms ±1.51% 242.66 ms 246.82 ms Poison 3.60 277.43 ms ±0.68% 277.18 ms 283.83 ms JSX 2.44 409.21 ms ±1.33% 410.07 ms 422.38 ms JSON 1.02 976.51 ms ±2.33% 979.38 ms 1009.51 ms

Comparison: jiffy 10.29 Jason 8.50 - 1.21x slower jsone 4.74 - 2.17x slower Tiny 4.14 - 2.48x slower Poison 3.60 - 2.85x slower JSX 2.44 - 4.21x slower JSON 1.02 - 10.04x slower

Memory usage statistics:

Name Memory usage jiffy 18.12 MB Jason 19.31 MB - 1.07x memory usage jsone 61.49 MB - 3.39x memory usage Tiny 73.29 MB - 4.04x memory usage Poison 86.77 MB - 4.79x memory usage JSX 149.57 MB - 8.25x memory usage JSON 318.75 MB - 17.59x memory usage

All measurements for memory usage were the same

With input Issue 90

Name ips average deviation median 99th % jiffy 37.72 26.51 ms ±2.91% 26.21 ms 29.43 ms Jason 7.70 129.82 ms ±0.99% 129.80 ms 133.95 ms Tiny 7.46 134.04 ms ±2.67% 133.90 ms 141.25 ms jsone 7.01 142.74 ms ±1.27% 141.95 ms 149.32 ms Poison 6.98 143.27 ms ±1.24% 143.10 ms 155.08 ms JSX 6.56 152.49 ms ±1.19% 152.09 ms 159.39 ms JSON 0.53 1879.96 ms ±1.20% 1880.50 ms 1928.42 ms

Comparison: jiffy 37.72 Jason 7.70 - 4.90x slower Tiny 7.46 - 5.06x slower jsone 7.01 - 5.38x slower Poison 6.98 - 5.40x slower JSX 6.56 - 5.75x slower JSON 0.53 - 70.92x slower

Memory usage statistics:

Name average deviation median 99th % jiffy 0.0500 MB ±0.00% 0.0500 MB 0.0500 MB Jason 2.36 MB ±0.00% 2.36 MB 2.36 MB Tiny 8.74 MB ±0.00% 8.74 MB 8.74 MB jsone 5.78 MB ±0.04% 5.78 MB 5.78 MB Poison 4.84 MB ±0.00% 4.84 MB 4.84 MB JSX 11.26 MB ±0.00% 11.26 MB 11.26 MB JSON 598.50 MB ±0.00% 598.50 MB 598.50 MB

Comparison: jiffy 0.0500 MB Jason 2.36 MB - 47.29x memory usage Tiny 8.74 MB - 174.95x memory usage jsone 5.78 MB - 115.71x memory usage Poison 4.84 MB - 96.83x memory usage JSX 11.26 MB - 225.42x memory usage JSON 598.50 MB - 11980.22x memory usage

With input JSON Generator

Name ips average deviation median 99th % jiffy 395.57 2.53 ms ±11.07% 2.45 ms 3.00 ms Jason 325.35 3.07 ms ±5.14% 3.10 ms 3.41 ms jsone 185.00 5.41 ms ±3.69% 5.38 ms 6.01 ms Tiny 158.87 6.29 ms ±4.16% 6.25 ms 7.02 ms Poison 139.34 7.18 ms ±5.09% 7.10 ms 8.93 ms JSX 109.31 9.15 ms ±3.91% 9.10 ms 10.24 ms JSON 54.23 18.44 ms ±3.99% 18.39 ms 20.73 ms

Comparison: jiffy 395.57 Jason 325.35 - 1.22x slower jsone 185.00 - 2.14x slower Tiny 158.87 - 2.49x slower Poison 139.34 - 2.84x slower JSX 109.31 - 3.62x slower JSON 54.23 - 7.29x slower

Memory usage statistics:

Name Memory usage jiffy 0.93 MB Jason 0.82 MB - 0.89x memory usage jsone 2.35 MB - 2.54x memory usage Tiny 3.05 MB - 3.30x memory usage Poison 3.76 MB - 4.07x memory usage JSX 5.19 MB - 5.61x memory usage JSON 10.55 MB - 11.40x memory usage

All measurements for memory usage were the same

With input JSON Generator (Pretty)

Name ips average deviation median 99th % jiffy 335.93 2.98 ms ±8.17% 2.97 ms 3.59 ms Jason 265.77 3.76 ms ±4.62% 3.78 ms 4.16 ms jsone 166.92 5.99 ms ±4.09% 5.95 ms 6.88 ms Tiny 138.96 7.20 ms ±5.64% 7.19 ms 8.03 ms Poison 126.91 7.88 ms ±3.89% 7.84 ms 8.77 ms JSX 93.22 10.73 ms ±3.85% 10.67 ms 11.88 ms JSON 47.17 21.20 ms ±3.90% 21.16 ms 24.12 ms

Comparison: jiffy 335.93 Jason 265.77 - 1.26x slower jsone 166.92 - 2.01x slower Tiny 138.96 - 2.42x slower Poison 126.91 - 2.65x slower JSX 93.22 - 3.60x slower JSON 47.17 - 7.12x slower

Memory usage statistics:

Name Memory usage jiffy 0.93 MB Jason 0.83 MB - 0.90x memory usage jsone 2.42 MB - 2.61x memory usage Tiny 3.02 MB - 3.27x memory usage Poison 3.83 MB - 4.13x memory usage JSX 6.08 MB - 6.57x memory usage JSON 12.30 MB - 13.29x memory usage

All measurements for memory usage were the same

With input Pokedex

Name ips average deviation median 99th % Jason 526.70 1.90 ms ±10.69% 1.87 ms 2.33 ms jiffy 471.36 2.12 ms ±12.75% 2.07 ms 2.68 ms jsone 249.57 4.01 ms ±6.29% 3.94 ms 4.90 ms Tiny 201.37 4.97 ms ±4.40% 4.91 ms 5.62 ms Poison 189.40 5.28 ms ±7.07% 5.11 ms 6.29 ms JSX 136.45 7.33 ms ±5.45% 7.16 ms 8.55 ms JSON 87.40 11.44 ms ±4.06% 11.36 ms 12.87 ms

Comparison: Jason 526.70 jiffy 471.36 - 1.12x slower jsone 249.57 - 2.11x slower Tiny 201.37 - 2.62x slower Poison 189.40 - 2.78x slower JSX 136.45 - 3.86x slower JSON 87.40 - 6.03x slower

Memory usage statistics:

Name Memory usage Jason 0.61 MB jiffy 0.93 MB - 1.51x memory usage jsone 1.95 MB - 3.19x memory usage Tiny 2.43 MB - 3.97x memory usage Poison 2.93 MB - 4.80x memory usage JSX 4.31 MB - 7.05x memory usage JSON 5.88 MB - 9.63x memory usage

All measurements for memory usage were the same

With input UTF-8 escaped

Name ips average deviation median 99th % jiffy 9535.50 0.105 ms ±10.56% 0.103 ms 0.126 ms Jason 974.24 1.03 ms ±22.13% 1.00 ms 1.62 ms Poison 887.71 1.13 ms ±22.38% 1.13 ms 1.60 ms Tiny 658.33 1.52 ms ±18.16% 1.51 ms 2.20 ms jsone 561.86 1.78 ms ±13.22% 1.78 ms 2.28 ms JSX 368.45 2.71 ms ±7.99% 2.71 ms 3.33 ms JSON 256.34 3.90 ms ±5.21% 3.89 ms 4.55 ms

Comparison: jiffy 9535.50 Jason 974.24 - 9.79x slower Poison 887.71 - 10.74x slower Tiny 658.33 - 14.48x slower jsone 561.86 - 16.97x slower JSX 368.45 - 25.88x slower JSON 256.34 - 37.20x slower

Memory usage statistics:

Name average deviation median 99th % jiffy 0 MB ±0.00% 0 MB 0 MB Jason 0.44 MB ±0.00% 0.44 MB 0.44 MB Poison 0.55 MB ±0.00% 0.55 MB 0.55 MB Tiny 1.08 MB ±0.00% 1.08 MB 1.08 MB jsone 1.00 MB ±2.93% 1.01 MB 1.01 MB JSX 1.65 MB ±0.00% 1.65 MB 1.65 MB JSON 3.00 MB ±0.00% 3.00 MB 3.00 MB

Comparison: jiffy 0 MB Jason 0.44 MB Poison 0.55 MB Tiny 1.08 MB jsone 1.01 MB JSX 1.65 MB JSON 3.00 MB

With input UTF-8 unescaped

Name ips average deviation median 99th % jiffy 15.00 K 66.69 μs ±24.12% 65 μs 85 μs Jason 5.27 K 189.58 μs ±41.66% 174 μs 663 μs jsone 3.61 K 276.73 μs ±35.26% 249 μs 808 μs Poison 3.40 K 294.08 μs ±35.60% 261 μs 825 μs JSX 2.99 K 334.91 μs ±41.32% 295 μs 828 μs Tiny 1.97 K 507.47 μs ±26.71% 484 μs 864 μs JSON 1.29 K 775.12 μs ±21.42% 777 μs 1272 μs

Comparison: jiffy 15.00 K Jason 5.27 K - 2.84x slower jsone 3.61 K - 4.15x slower Poison 3.40 K - 4.41x slower JSX 2.99 K - 5.02x slower Tiny 1.97 K - 7.61x slower JSON 1.29 K - 11.62x slower

Memory usage statistics:

Name Memory usage jiffy 0 KB Jason 20.49 KB jsone 24.32 KB Poison 39.23 KB JSX 62.63 KB Tiny 218.93 KB JSON 407.25 KB

All measurements for memory usage were the same