Skip to content

Instantly share code, notes, and snippets.

Created December 18, 2012 23:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/4333067 to your computer and use it in GitHub Desktop.
Save anonymous/4333067 to your computer and use it in GitHub Desktop.
metamagic.json vs ujson
-[ timing tests ]------------------------------
Array with 256 short ascii strings:
std json: 2.65893 sec, 11282 req/sec
mm c json: 0.89771 sec, 33418 req/sec ( 3.0x )
mm c 1ini: 0.86308 sec, 34759 req/sec ( 3.1x )
mm c dumpb: 0.88435 sec, 33923 req/sec ( 3.0x )
ujson: 2.01593 sec, 14881 req/sec ( 1.3x )
marshal: 1.77637 sec, 16888 req/sec
Array with 2048 3-char ascii strings:
std json: 0.46795 sec, 4273 req/sec
mm c json: 0.12213 sec, 16375 req/sec ( 3.8x )
mm c 1ini: 0.12087 sec, 16546 req/sec ( 3.9x )
mm c dumpb: 0.12081 sec, 16554 req/sec ( 3.9x )
ujson: 0.57373 sec, 3485 req/sec ( 0.8x )
marshal: 0.38574 sec, 5184 req/sec
Array with 256 long ascii strings:
std json: 1.31176 sec, 3811 req/sec
mm c json: 0.42728 sec, 11701 req/sec ( 3.1x )
mm c 1ini: 0.4415 sec, 11325 req/sec ( 3.0x )
mm c dumpb: 0.42976 sec, 11634 req/sec ( 3.1x )
ujson: 0.68999 sec, 7246 req/sec ( 1.9x )
marshal: 0.81957 sec, 6100 req/sec
Array with 256 long utf-8 strings:
std json: 1.5042 sec, 1329 req/sec
mm c json: 1.47078 sec, 1359 req/sec ( 1.0x )
mm c 1ini: 1.47409 sec, 1356 req/sec ( 1.0x )
mm c dumpb: 1.42876 sec, 1399 req/sec ( 1.1x )
ujson: 2.473 sec, 808 req/sec ( 0.6x )
marshal: 1.32233 sec, 1512 req/sec
Medium complex object:
std json: 3.47718 sec, 2875 req/sec
mm c json: 1.37736 sec, 7260 req/sec ( 2.5x )
mm c 1ini: 1.37649 sec, 7264 req/sec ( 2.5x )
mm c dumpb: 1.35585 sec, 7375 req/sec ( 2.6x )
ujson: 1.26684 sec, 7893 req/sec ( 2.7x )
marshal: 1.00874 sec, 9913 req/sec
Array with 256 doubles:
std json: 3.37377 sec, 2964 req/sec
mm c json: 2.20136 sec, 4542 req/sec ( 1.5x )
mm c 1ini: 2.9853 sec, 3349 req/sec ( 1.1x )
mm c dumpb: 2.77406 sec, 3604 req/sec ( 1.2x )
ujson: 0.31939 sec, 31309 req/sec ( 10.6x )
marshal: 0.14199 sec, 70427 req/sec
Array with 256 ints:
std json: 1.1378 sec, 17577 req/sec
mm c json: 0.2816 sec, 71022 req/sec ( 4.0x )
mm c 1ini: 0.25926 sec, 77142 req/sec ( 4.4x )
mm c dumpb: 0.28709 sec, 69664 req/sec ( 4.0x )
ujson: 0.4089 sec, 48911 req/sec ( 2.8x )
marshal: 0.14832 sec, 134843 req/sec
Array with 256 small ints:
std json: 1.2062 sec, 165809 req/sec
mm c json: 0.31506 sec, 634799 req/sec ( 3.8x )
mm c 1ini: 0.10601 sec, 1886614 req/sec ( 11.4x )
mm c dumpb: 0.29149 sec, 686129 req/sec ( 4.1x )
ujson: 0.10513 sec, 1902406 req/sec ( 11.5x )
marshal: 0.09095 sec, 2199010 req/sec
Array with 256 Decimals:
std json: failed to serialize
mm c json: 0.85002 sec, 9411 req/sec ( 0.0x )
mm c 1ini: 0.94584 sec, 8458 req/sec ( 0.0x )
mm c dumpb: 0.85354 sec, 9372 req/sec ( 0.0x )
ujson: crashed with Maximum recursion level reached
marshal: failed to serialize
Array with 256 True values:
std json: 2.31936 sec, 34492 req/sec
mm c json: 0.63926 sec, 125144 req/sec ( 3.6x )
mm c 1ini: 0.40111 sec, 199446 req/sec ( 5.8x )
mm c dumpb: 0.49052 sec, 163092 req/sec ( 4.7x )
ujson: 1.01391 sec, 78902 req/sec ( 2.3x )
marshal: 0.27062 sec, 295617 req/sec
Array with 256 False values:
std json: 1.96338 sec, 40746 req/sec
mm c json: 0.48973 sec, 163355 req/sec ( 4.0x )
mm c 1ini: 0.41958 sec, 190666 req/sec ( 4.7x )
mm c dumpb: 0.4561 sec, 175400 req/sec ( 4.3x )
ujson: 0.96084 sec, 83260 req/sec ( 2.0x )
marshal: 0.24616 sec, 324991 req/sec
Array with 256 dict{string, int} pairs:
std json: 1.70611 sec, 4689 req/sec
mm c json: 0.36205 sec, 22096 req/sec ( 4.7x )
mm c 1ini: 0.35202 sec, 22725 req/sec ( 4.8x )
mm c dumpb: 0.34907 sec, 22918 req/sec ( 4.9x )
ujson: 0.59559 sec, 13432 req/sec ( 2.9x )
marshal: 0.52467 sec, 15247 req/sec
Array with 256 dict-based{string, int} pairs:
std json: 3.98171 sec, 2009 req/sec
mm c json: 3.62291 sec, 2208 req/sec ( 1.1x )
mm c 1ini: 3.58263 sec, 2232 req/sec ( 1.1x )
mm c dumpb: 3.76489 sec, 2124 req/sec ( 1.1x )
ujson: 0.58567 sec, 13659 req/sec ( 6.8x )
marshal: failed to serialize
Array with 256 orderedDict{string, int} pairs:
std json: 2.20037 sec, 454 req/sec
mm c json: 0.68094 sec, 1468 req/sec ( 3.2x )
mm c 1ini: 0.68384 sec, 1462 req/sec ( 3.2x )
mm c dumpb: 0.65653 sec, 1523 req/sec ( 3.4x )
ujson: 0.22893 sec, 4368 req/sec ( 9.6x )
marshal: failed to serialize
Dict with 256 arrays with 256 dict{string, int} pairs:
std json: 3.58892 sec, 13 req/sec
mm c json: 0.67028 sec, 74 req/sec ( 5.4x )
mm c 1ini: 0.73365 sec, 68 req/sec ( 4.9x )
mm c dumpb: 0.66326 sec, 75 req/sec ( 5.4x )
ujson: 1.20702 sec, 41 req/sec ( 3.0x )
marshal: 1.01116 sec, 49 req/sec
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment