simplejson vs. python-cjson
I needed a package that decodes JSON into dictionaries/lists etc. I’ve used simplejson in the past and it’s worked fairly well. I came across another package today that claims to be at least a hundred times faster than the other JSON implementations for python called cjson. I was a bit skeptical because simplejson has C extensions too.
I decided to run some quick benchmarks. The code I ran can be found here.
benchmark data:
processor: Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
x86_64 Linux.
simplejson 1.7.3 (I assume the c extensions are enabled because I used emerge to get it)
python-cjson 1.0.5
Python 2.5.1
simplejson results:
% time ./simplejsonbench.py
./simplejsonbench.py 38.97s user 0.00s system 99% cpu 38.968 total
% time ./simplejsonbench.py
./simplejsonbench.py 39.17s user 0.01s system 99% cpu 39.187 total
cjson results:
% time ./cjsonbenchmark.py
./cjsonbenchmark.py 0.77s user 0.01s system 99% cpu 0.784 total
% time ./cjsonbenchmark.py
./cjsonbenchmark.py 0.77s user 0.03s system 100% cpu 0.794 total
simplejson average: 39.07s
cjson average: 0.77s
verdict: cjson 50.74x faster in this benchmark
I’d run more, but I don’t really think I have to. Simplejson actually seems to have a more robust interface than cjson, and is more portable because it doesn’t require a C compiler.
The cjson website has some other numbers that measure actual measured throughput of cjson vs. simplejson. The versions of simplejson is older, and it states there’s no C extensions compiled in.
Tags: benchmarks, cjson, json, Python, simplejson

January 30th, 2008 at 9:55 pm
I remember looking for something similar a few weeks ago, and found this pretty nice albeit short series of benchmarks, thought you might want to check it out. http://blog.hill-street.net/?p=7
October 28th, 2008 at 2:00 pm
Keep up the good work.