Skip to content

Commit ecd1084

Browse files
committed
Add more benchmarks.
1 parent 56a9c96 commit ecd1084

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

src/jsony.nim

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@ proc eatSpace*(s: string, i: var int) =
1919
## Will consume whitespace.
2020
while i < s.len:
2121
let c = s[i]
22-
if c in whiteSpace:
23-
discard
24-
else:
25-
return
22+
if c notin whiteSpace:
23+
break
2624
inc i
2725

2826
proc eatChar*(s: string, i: var int, c: char) =

tests/bench.nim

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import benchy, random, json, jsony, eminim, streams, jsutils/jsons
2+
from packedjson import parseJson, toJsonNode
3+
from packedjson/deserialiser import to
24

35
type Node = ref object
46
kind: string
@@ -19,18 +21,32 @@ proc genTree(depth: int): Node =
1921
result.kids.add genTree(depth - 1)
2022

2123
var tree = genTree(10)
22-
var treeStr = pretty %tree
24+
25+
var treeStr = $(%tree)
26+
var treePrettyStr = json.pretty(%tree)
2327

2428
echo genId, " node tree:"
2529

2630
timeIt "treeform/jsony":
2731
keep jsony.fromJson[Node](treeStr)
2832

33+
timeIt "treeform/jsony pretty":
34+
keep jsony.fromJson[Node](treePrettyStr)
35+
2936
timeIt "nim std/json":
30-
keep parseJson(treeStr).to(Node)
37+
keep json.parseJson(treeStr).to(Node)
38+
39+
timeIt "araq/packedjson":
40+
keep packedjson.parseJson(treeStr)
41+
42+
timeIt "araq/packedjson with to":
43+
keep deserialiser.to(packedjson.parseJson(treeStr).toJsonNode(), Node)
3144

3245
timeIt "treeform/jsutils/jsons":
33-
keep jsons.fromJson(parseJson(treeStr), Node)
46+
keep jsons.fromJson(json.parseJson(treeStr), Node)
3447

3548
timeIt "planetis-m/eminim":
36-
keep newStringStream(treeStr).jsonTo(Node)
49+
keep newStringStream(treeStr).jsonTo(Node)
50+
51+
timeIt "planetis-m/eminim pretty":
52+
keep newStringStream(treePrettyStr).jsonTo(Node)

0 commit comments

Comments
 (0)