forked from ultrajson/ultrajson
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
159 lines (120 loc) · 4.71 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
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!