Skip to content

Instantly share code, notes, and snippets.

@JoelPM
Created February 11, 2016 19:45
Show Gist options
  • Save JoelPM/83114f0a8266c24ccbd9 to your computer and use it in GitHub Desktop.
Save JoelPM/83114f0a8266c24ccbd9 to your computer and use it in GitHub Desktop.
[joel.meyer@LUMI:src/poison]$ MIX_ENV=bench elixir -pa _build/bench/lib/\*/ebin -pa _build/bench/consolidated -S mix bench (02-11 11:38)
bench/encoder_bench.exs:131: warning: the Poison.Encoder protocol has already been consolidated, an implementation for EncoderBench.Struct has no effect
bench/encoder_bench.exs:131: warning: the Poison.Encoder protocol has already been consolidated, an implementation for EncoderBench.Struct has no effect
Settings:
duration: 1.0 s
## EncoderBench
[11:38:31] 1/33: structs (Poison)
[11:38:33] 2/33: structs (Jazz)
[11:38:35] 3/33: structs (JSX)
[11:38:38] 4/33: strings (jiffy)
[11:38:41] 5/33: strings (Poison)
[11:38:45] 6/33: strings (Jazz)
[11:38:49] 7/33: strings (JSX)
[11:38:51] 8/33: string escaping (jiffy)
[11:38:52] 9/33: string escaping (Poison)
[11:38:54] 10/33: string escaping (Jazz)
[11:38:57] 11/33: string escaping (JSX)
[11:38:59] 12/33: maps (jiffy)
[11:39:01] 13/33: maps (Poison)
[11:39:03] 14/33: maps (Jazz)
[11:39:06] 15/33: maps (JSX)
[11:39:08] 16/33: lists (jiffy)
[11:39:11] 17/33: lists (Poison)
[11:39:13] 18/33: lists (Jazz)
[11:39:16] 19/33: lists (JSX)
[11:39:19] 20/33: jiffy (pretty)
[11:39:22] 21/33: jiffy
[11:39:25] 22/33: Poison (pretty)
[11:39:27] 23/33: Poison
[11:39:29] 24/33: Jazz (pretty)
[11:39:32] 25/33: Jazz
[11:39:35] 26/33: JSX (pretty)
[11:39:39] 27/33: JSX
## ParserBench
[11:39:41] 28/33: jiffy
[11:39:45] 29/33: UTF-8 unescaping (jiffy)
[11:39:49] 30/33: UTF-8 unescaping (Poison)
[11:39:50] 31/33: UTF-8 unescaping (JSX)
[11:39:52] 32/33: Poison
[11:39:55] 33/33: JSX
Finished in 86.7 seconds
## EncoderBench
structs (Poison) 200000 9.33 µs/op
maps (jiffy) 100000 10.00 µs/op
structs (Jazz) 100000 18.06 µs/op
maps (Poison) 100000 20.45 µs/op
structs (JSX) 100000 23.67 µs/op
maps (Jazz) 100000 26.19 µs/op
maps (JSX) 50000 38.27 µs/op
strings (jiffy) 20000 97.13 µs/op
string escaping (jiffy) 10000 145.46 µs/op
lists (Poison) 10000 166.69 µs/op
lists (Jazz) 10000 262.34 µs/op
lists (jiffy) 10000 262.51 µs/op
strings (JSX) 5000 322.37 µs/op
lists (JSX) 5000 460.36 µs/op
jiffy 5000 495.91 µs/op
jiffy (pretty) 5000 508.79 µs/op
strings (Poison) 5000 546.37 µs/op
strings (Jazz) 5000 657.30 µs/op
string escaping (Poison) 1000 1934.28 µs/op
Poison 1000 1954.96 µs/op
string escaping (JSX) 1000 2002.33 µs/op
Poison (pretty) 1000 2042.61 µs/op
string escaping (Jazz) 1000 2545.33 µs/op
Jazz 1000 2599.03 µs/op
Jazz (pretty) 1000 2890.09 µs/op
JSX 500 3020.44 µs/op
JSX (pretty) 500 6632.21 µs/op
## ParserBench
UTF-8 unescaping (jiffy) 50000 71.02 µs/op
UTF-8 unescaping (Poison) 10000 127.15 µs/op
UTF-8 unescaping (JSX) 5000 341.27 µs/op
jiffy 5000 545.97 µs/op
Poison 2000 804.09 µs/op
JSX 1000 1996.46 µs/op
@innovateboliu
Copy link

Hey Joel, I saw "structs (Poison) 200000 9.33 µs/op" does that mean using Poison for json -> struct is even faster than using jiffy for json -> map?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment