Skip to content

Commit 09efa1e

Browse files
committed
Reorder sections: decode, encode, parse+get
1 parent f532df6 commit 09efa1e

3 files changed

Lines changed: 60 additions & 60 deletions

File tree

bench/index.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,10 @@ <h2>Performance Over Time</h2>
147147
' (' + new Date(data.date).toLocaleDateString() + ')';
148148

149149
var GROUP_ORDER = [
150-
'Encode — 1.2 KB OpenRTB',
151-
'Encode — 750 KB Twitter',
152150
'Decode — 1.2 KB OpenRTB',
153151
'Decode — 750 KB Twitter',
152+
'Encode — 1.2 KB OpenRTB',
153+
'Encode — 750 KB Twitter',
154154
'Parse+Get (5 fields) — 1.2 KB OpenRTB'
155155
];
156156

@@ -227,10 +227,10 @@ <h2>Performance Over Time</h2>
227227
var metricNames = latest.map(function (b) { return b.name; });
228228

229229
var TREND_ORDER = [
230-
'Encode \u2014 1.2 KB OpenRTB',
231-
'Encode \u2014 750 KB Twitter',
232230
'Decode \u2014 1.2 KB OpenRTB',
233231
'Decode \u2014 750 KB Twitter',
232+
'Encode \u2014 1.2 KB OpenRTB',
233+
'Encode \u2014 750 KB Twitter',
234234
'Parse+Get \u2014 1.2 KB OpenRTB'
235235
];
236236

bench/torque_bench.exs

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -301,24 +301,16 @@ end
301301

302302
large_decoded_proplist = to_proplist.(to_proplist, large_decoded_json)
303303

304-
BenchGroup.set("Encode — 1.2 KB OpenRTB")
305-
IO.puts("=== ENCODE BENCHMARK ===\n")
304+
BenchGroup.set("Decode — 1.2 KB OpenRTB")
305+
IO.puts("=== DECODE BENCHMARK ===\n")
306306

307307
Benchee.run(
308308
%{
309-
"jason [map() :: binary()]" => fn -> Jason.encode!(bid_response) end,
310-
"jason [map() :: iodata()]" => fn -> Jason.encode_to_iodata!(bid_response) end,
311-
"jiffy [map() :: iodata()]" => fn -> :jiffy.encode(bid_response) end,
312-
"jiffy [proplist() :: iodata()]" => fn ->
313-
:jiffy.encode(bid_response_proplist, [:force_utf8])
314-
end,
315-
"otp json [map() :: iodata()]" => fn -> :json.encode(bid_response) end,
316-
"simdjsone [map() :: iodata()]" => fn -> :simdjson.encode(bid_response) end,
317-
"simdjsone [proplist() :: iodata()]" => fn -> :simdjson.encode(bid_response_proplist) end,
318-
"torque [map() :: binary()]" => fn -> Torque.encode!(bid_response) end,
319-
"torque [map() :: iodata()]" => fn -> Torque.encode_to_iodata(bid_response) end,
320-
"torque [proplist() :: binary()]" => fn -> Torque.encode!(bid_response_proplist) end,
321-
"torque [proplist() :: iodata()]" => fn -> Torque.encode_to_iodata(bid_response_proplist) end
309+
"jason decode" => fn -> Jason.decode!(sample_json) end,
310+
"jiffy decode" => fn -> :jiffy.decode(sample_json, [:return_maps]) end,
311+
"otp json decode" => fn -> :json.decode(sample_json) end,
312+
"simdjsone decode" => fn -> :simdjson.decode(sample_json) end,
313+
"torque decode" => fn -> Torque.decode!(sample_json) end
322314
},
323315
warmup: 2,
324316
time: 5,
@@ -330,22 +322,16 @@ Benchee.run(
330322
] ++ ci_formatters
331323
)
332324

333-
BenchGroup.set("Encode — 750 KB Twitter")
334-
IO.puts("\n=== LARGE JSON ENCODE BENCHMARK ===\n")
325+
BenchGroup.set("Decode — 750 KB Twitter")
326+
IO.puts("\n=== LARGE JSON DECODE BENCHMARK ===\n")
335327

336328
Benchee.run(
337329
%{
338-
"jason [map() :: binary()]" => fn -> Jason.encode!(large_decoded_json) end,
339-
"jason [map() :: iodata()]" => fn -> Jason.encode_to_iodata!(large_decoded_json) end,
340-
"jiffy [map() :: iodata()]" => fn -> :jiffy.encode(large_decoded_json) end,
341-
"jiffy [proplist() :: iodata()]" => fn -> :jiffy.encode(large_decoded_proplist) end,
342-
"otp json [map() :: iodata()]" => fn -> :json.encode(large_decoded_json) end,
343-
"simdjsone [map() :: iodata()]" => fn -> :simdjson.encode(large_decoded_json) end,
344-
"simdjsone [proplist() :: iodata()]" => fn -> :simdjson.encode(large_decoded_proplist) end,
345-
"torque [map() :: binary()]" => fn -> Torque.encode!(large_decoded_json) end,
346-
"torque [map() :: iodata()]" => fn -> Torque.encode_to_iodata(large_decoded_json) end,
347-
"torque [proplist() :: binary()]" => fn -> Torque.encode!(large_decoded_proplist) end,
348-
"torque [proplist() :: iodata()]" => fn -> Torque.encode_to_iodata(large_decoded_proplist) end
330+
"jason decode" => fn -> Jason.decode!(large_json) end,
331+
"jiffy decode" => fn -> :jiffy.decode(large_json, [:return_maps]) end,
332+
"otp json decode" => fn -> :json.decode(large_json) end,
333+
"simdjsone decode" => fn -> :simdjson.decode(large_json) end,
334+
"torque decode" => fn -> Torque.decode!(large_json) end
349335
},
350336
warmup: 2,
351337
time: 5,
@@ -357,16 +343,24 @@ Benchee.run(
357343
] ++ ci_formatters
358344
)
359345

360-
BenchGroup.set("Decode — 1.2 KB OpenRTB")
361-
IO.puts("\n=== DECODE BENCHMARK ===\n")
346+
BenchGroup.set("Encode — 1.2 KB OpenRTB")
347+
IO.puts("\n=== ENCODE BENCHMARK ===\n")
362348

363349
Benchee.run(
364350
%{
365-
"jason decode" => fn -> Jason.decode!(sample_json) end,
366-
"jiffy decode" => fn -> :jiffy.decode(sample_json, [:return_maps]) end,
367-
"otp json decode" => fn -> :json.decode(sample_json) end,
368-
"simdjsone decode" => fn -> :simdjson.decode(sample_json) end,
369-
"torque decode" => fn -> Torque.decode!(sample_json) end
351+
"jason [map() :: binary()]" => fn -> Jason.encode!(bid_response) end,
352+
"jason [map() :: iodata()]" => fn -> Jason.encode_to_iodata!(bid_response) end,
353+
"jiffy [map() :: iodata()]" => fn -> :jiffy.encode(bid_response) end,
354+
"jiffy [proplist() :: iodata()]" => fn ->
355+
:jiffy.encode(bid_response_proplist, [:force_utf8])
356+
end,
357+
"otp json [map() :: iodata()]" => fn -> :json.encode(bid_response) end,
358+
"simdjsone [map() :: iodata()]" => fn -> :simdjson.encode(bid_response) end,
359+
"simdjsone [proplist() :: iodata()]" => fn -> :simdjson.encode(bid_response_proplist) end,
360+
"torque [map() :: binary()]" => fn -> Torque.encode!(bid_response) end,
361+
"torque [map() :: iodata()]" => fn -> Torque.encode_to_iodata(bid_response) end,
362+
"torque [proplist() :: binary()]" => fn -> Torque.encode!(bid_response_proplist) end,
363+
"torque [proplist() :: iodata()]" => fn -> Torque.encode_to_iodata(bid_response_proplist) end
370364
},
371365
warmup: 2,
372366
time: 5,
@@ -378,16 +372,22 @@ Benchee.run(
378372
] ++ ci_formatters
379373
)
380374

381-
BenchGroup.set("Decode — 750 KB Twitter")
382-
IO.puts("\n=== LARGE JSON DECODE BENCHMARK ===\n")
375+
BenchGroup.set("Encode — 750 KB Twitter")
376+
IO.puts("\n=== LARGE JSON ENCODE BENCHMARK ===\n")
383377

384378
Benchee.run(
385379
%{
386-
"jason decode" => fn -> Jason.decode!(large_json) end,
387-
"jiffy decode" => fn -> :jiffy.decode(large_json, [:return_maps]) end,
388-
"otp json decode" => fn -> :json.decode(large_json) end,
389-
"simdjsone decode" => fn -> :simdjson.decode(large_json) end,
390-
"torque decode" => fn -> Torque.decode!(large_json) end
380+
"jason [map() :: binary()]" => fn -> Jason.encode!(large_decoded_json) end,
381+
"jason [map() :: iodata()]" => fn -> Jason.encode_to_iodata!(large_decoded_json) end,
382+
"jiffy [map() :: iodata()]" => fn -> :jiffy.encode(large_decoded_json) end,
383+
"jiffy [proplist() :: iodata()]" => fn -> :jiffy.encode(large_decoded_proplist) end,
384+
"otp json [map() :: iodata()]" => fn -> :json.encode(large_decoded_json) end,
385+
"simdjsone [map() :: iodata()]" => fn -> :simdjson.encode(large_decoded_json) end,
386+
"simdjsone [proplist() :: iodata()]" => fn -> :simdjson.encode(large_decoded_proplist) end,
387+
"torque [map() :: binary()]" => fn -> Torque.encode!(large_decoded_json) end,
388+
"torque [map() :: iodata()]" => fn -> Torque.encode_to_iodata(large_decoded_json) end,
389+
"torque [proplist() :: binary()]" => fn -> Torque.encode!(large_decoded_proplist) end,
390+
"torque [proplist() :: iodata()]" => fn -> Torque.encode_to_iodata(large_decoded_proplist) end
391391
},
392392
warmup: 2,
393393
time: 5,

bench/torque_only_bench.exs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -273,14 +273,11 @@ end
273273

274274
large_decoded_proplist = to_proplist.(to_proplist, large_decoded_json)
275275

276-
IO.puts("=== ENCODE BENCHMARK ===\n")
276+
IO.puts("=== DECODE BENCHMARK ===\n")
277277

278278
Benchee.run(
279279
%{
280-
"torque [map() :: binary()]" => fn -> Torque.encode!(bid_response) end,
281-
"torque [map() :: iodata()]" => fn -> Torque.encode_to_iodata(bid_response) end,
282-
"torque [proplist() :: binary()]" => fn -> Torque.encode!(bid_response_proplist) end,
283-
"torque [proplist() :: iodata()]" => fn -> Torque.encode_to_iodata(bid_response_proplist) end
280+
"torque decode" => fn -> Torque.decode!(sample_json) end
284281
},
285282
warmup: 2,
286283
time: 5,
@@ -291,14 +288,11 @@ Benchee.run(
291288
]
292289
)
293290

294-
IO.puts("\n=== LARGE JSON ENCODE BENCHMARK ===\n")
291+
IO.puts("\n=== LARGE JSON DECODE BENCHMARK ===\n")
295292

296293
Benchee.run(
297294
%{
298-
"torque [map() :: binary()]" => fn -> Torque.encode!(large_decoded_json) end,
299-
"torque [map() :: iodata()]" => fn -> Torque.encode_to_iodata(large_decoded_json) end,
300-
"torque [proplist() :: binary()]" => fn -> Torque.encode!(large_decoded_proplist) end,
301-
"torque [proplist() :: iodata()]" => fn -> Torque.encode_to_iodata(large_decoded_proplist) end
295+
"torque decode" => fn -> Torque.decode!(large_json) end
302296
},
303297
warmup: 2,
304298
time: 5,
@@ -309,11 +303,14 @@ Benchee.run(
309303
]
310304
)
311305

312-
IO.puts("\n=== DECODE BENCHMARK ===\n")
306+
IO.puts("\n=== ENCODE BENCHMARK ===\n")
313307

314308
Benchee.run(
315309
%{
316-
"torque decode" => fn -> Torque.decode!(sample_json) end
310+
"torque [map() :: binary()]" => fn -> Torque.encode!(bid_response) end,
311+
"torque [map() :: iodata()]" => fn -> Torque.encode_to_iodata(bid_response) end,
312+
"torque [proplist() :: binary()]" => fn -> Torque.encode!(bid_response_proplist) end,
313+
"torque [proplist() :: iodata()]" => fn -> Torque.encode_to_iodata(bid_response_proplist) end
317314
},
318315
warmup: 2,
319316
time: 5,
@@ -324,11 +321,14 @@ Benchee.run(
324321
]
325322
)
326323

327-
IO.puts("\n=== LARGE JSON DECODE BENCHMARK ===\n")
324+
IO.puts("\n=== LARGE JSON ENCODE BENCHMARK ===\n")
328325

329326
Benchee.run(
330327
%{
331-
"torque decode" => fn -> Torque.decode!(large_json) end
328+
"torque [map() :: binary()]" => fn -> Torque.encode!(large_decoded_json) end,
329+
"torque [map() :: iodata()]" => fn -> Torque.encode_to_iodata(large_decoded_json) end,
330+
"torque [proplist() :: binary()]" => fn -> Torque.encode!(large_decoded_proplist) end,
331+
"torque [proplist() :: iodata()]" => fn -> Torque.encode_to_iodata(large_decoded_proplist) end
332332
},
333333
warmup: 2,
334334
time: 5,

0 commit comments

Comments
 (0)