forked from ultrajson/ultrajson
-
Notifications
You must be signed in to change notification settings - Fork 0
Ultra fast JSON decoder and encoder written in C. Includes Python reference integration
solute/ultrajson
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
UltraJSON is a fast and extendable JSON encoder and decoder written in pure C Python bindings are available as the module ujson (through easy_install / pypi): http://pypi.python.org/pypi/ujson/ Installation instructions: 1. Build the ultrajson library In root directory of ultrajson. Type: make 2. Build and install ujson Python extension (requires root) Go to <root>/python Type: python setup.py build install 3. Run tests (as needed) Type: python tests.py Same instructions applies for Windows except that step 1) isn't necessary since a prebuilt static library is included. Preliminary benchmarks: 64-bit benchmarks Linux Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) OS Version: Ubuntu 10.10 System Type: x64-based PC Processor: Intel(R) Core(TM) i5-2300 CPU @ 2.80GHz Total Physical Memory: 4096 MB Array with 256 utf-8 strings: ujson encode : 2874.54652 calls/sec simplejson encode : 1539.47999 calls/sec cjson encode : 132.33571 calls/sec ujson decode : 2072.09417 calls/sec cjson decode : 991.20903 calls/sec simplejson decode : 310.75309 calls/sec Medium complex object: ujson encode : 19001.01929 calls/sec simplejson encode : 3512.29205 calls/sec cjson encode : 3063.69959 calls/sec ujson decode : 12791.80993 calls/sec cjson decode : 8288.32916 calls/sec simplejson decode : 6640.22169 calls/sec Array with 256 strings: ujson encode : 40161.78453 calls/sec simplejson encode : 19301.40779 calls/sec cjson encode : 12337.13166 calls/sec ujson decode : 36944.81317 calls/sec cjson decode : 30187.40167 calls/sec simplejson decode : 25105.56562 calls/sec Array with 256 doubles: ujson encode : 6054.71950 calls/sec simplejson encode : 2912.44353 calls/sec cjson encode : 3539.51228 calls/sec ujson decode : 27794.29735 calls/sec cjson decode : 14892.38775 calls/sec simplejson decode : 14879.00070 calls/sec Array with 256 True values: ujson encode : 168086.95325 calls/sec simplejson encode : 49348.93309 calls/sec cjson encode : 67392.90623 calls/sec ujson decode : 139359.25968 calls/sec cjson decode : 82552.26652 calls/sec simplejson decode : 114998.51396 calls/sec Array with 256 dict{string, int} pairs: ujson encode : 24125.68837 calls/sec simplejson encode : 5751.74871 calls/sec cjson encode : 4735.65147 calls/sec ujson decode : 17176.70493 calls/sec cjson decode : 13420.93963 calls/sec simplejson decode : 9854.27352 calls/sec Dict with 256 arrays with 256 dict{string, int} pairs: ujson encode : 86.52449 calls/sec simplejson encode : 17.46117 calls/sec cjson encode : 18.31323 calls/sec ujson decode : 49.54660 calls/sec cjson decode : 38.34094 calls/sec simplejson decode : 28.18035 calls/sec 32-bit benchmarks Windows Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] OS Version: 6.1.7601 Service Pack 1 Build 7601 System Type: x64-based PC Processor: Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz 2.83 GHz Total Physical Memory: 8191 MB Array with 256 utf-8 strings: ujson encode : 1191.98175 calls/sec simplejson encode : 1013.98279 calls/sec cjson encode : 1040.66063 calls/sec ujson decode : 1215.66875 calls/sec cjson decode : 493.30484 calls/sec simplejson decode : 269.85512 calls/sec Medium complex object: ujson encode : 10307.63723 calls/sec simplejson encode : 2534.94769 calls/sec cjson encode : 2047.95118 calls/sec ujson decode : 7274.10026 calls/sec cjson decode : 3575.39307 calls/sec simplejson decode : 3565.51252 calls/sec Array with 256 strings: ujson encode : 21348.25210 calls/sec simplejson encode : 15736.74638 calls/sec cjson encode : 6371.26334 calls/sec ujson decode : 26050.25316 calls/sec cjson decode : 16468.88215 calls/sec simplejson decode : 21115.75770 calls/sec Array with 256 doubles: ujson encode : 26975.49110 calls/sec simplejson encode : 2046.29746 calls/sec cjson encode : 2133.56594 calls/sec ujson decode : 28430.33722 calls/sec cjson decode : 4114.36400 calls/sec simplejson decode : 4419.08507 calls/sec Array with 256 True values: ujson encode : 89846.12897 calls/sec simplejson encode : 34288.36862 calls/sec cjson encode : 47168.35849 calls/sec ujson decode : 99423.47549 calls/sec cjson decode : 58795.91460 calls/sec simplejson decode : 76296.14699 calls/sec Array with 256 dict{string, int} pairs: ujson encode : 14776.41614 calls/sec simplejson encode : 3876.86634 calls/sec cjson encode : 3050.65343 calls/sec ujson decode : 12934.39432 calls/sec cjson decode : 7993.04345 calls/sec simplejson decode : 7152.09475 calls/sec See (python/benchmark.py) for further information. NOTE: These benchmarks are preliminary!
About
Ultra fast JSON decoder and encoder written in C. Includes Python reference integration
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C 56.1%
- Python 25.9%
- C++ 18.0%