11import benchy, random, json, jsony, eminim, streams, jsutils/ jsons
2+ from packedjson import parseJson, toJsonNode
3+ from packedjson/ deserialiser import to
24
35type Node = ref object
46 kind: string
@@ -19,18 +21,32 @@ proc genTree(depth: int): Node =
1921 result .kids.add genTree (depth - 1 )
2022
2123var tree = genTree (10 )
22- var treeStr = pretty % tree
24+
25+ var treeStr = $ (% tree)
26+ var treePrettyStr = json.pretty (% tree)
2327
2428echo genId, " node tree:"
2529
2630timeIt " treeform/jsony" :
2731 keep jsony.fromJson [Node ](treeStr)
2832
33+ timeIt " treeform/jsony pretty" :
34+ keep jsony.fromJson [Node ](treePrettyStr)
35+
2936timeIt " 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
3245timeIt " treeform/jsutils/jsons" :
33- keep jsons.fromJson (parseJson (treeStr), Node )
46+ keep jsons.fromJson (json. parseJson (treeStr), Node )
3447
3548timeIt " 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