On Fri, 15 Apr 2011 14:27:04 -0700
Bob Ippolito
On Fri, Apr 15, 2011 at 2:20 PM, Antoine Pitrou
wrote: Le vendredi 15 avril 2011 à 14:18 -0700, Bob Ippolito a écrit :
On Friday, April 15, 2011, Antoine Pitrou
wrote: Since the JSON spec is set in stone, the changes will mostly be about API (indentation, object conversion, etc) and optimization. I presume the core parsing logic won't be changing much.
Actually the core parsing logic is very different (and MUCH faster),
Are you talking about the Python logic or the C logic?
Both, actually. IIRC simplejson in pure python typically beats json with it's C extension.
Really? It would be nice to see some concrete benchmarks against both repo tips.
Maybe in a few weeks or months when I have time to finish up the benchmarks that I was working on... but it should be pretty easy for anyone to show that the version in CPython is very slow (and uses a lot more memory) in comparison to simplejson.
Well, here's a crude microbenchmark. I'm comparing 2.6+simplejson 2.1.3 to 3.3+json, so I'm avoiding integers: * json.dumps: $ python -m timeit -s "from simplejson import dumps, loads; \ d = dict((str(i), str(i)) for i in range(1000))" \ "dumps(d)" - 2.6+simplejson: 372 usec per loop - 3.2+json: 352 usec per loop * json.loads: $ python -m timeit -s "from simplejson import dumps, loads; \ d = dict((str(i), str(i)) for i in range(1000)); s = dumps(d)" \ "loads(s)" - 2.6+simplejson: 224 usec per loop - 3.2+json: 233 usec per loop The runtimes look quite similar. Antoine.