json_pure 1.1.3 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. data/CHANGES +9 -0
  2. data/Rakefile +47 -53
  3. data/VERSION +1 -1
  4. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log +52 -0
  5. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat +1000 -0
  6. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat +1001 -0
  7. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat +900 -0
  8. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat +901 -0
  9. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat +1000 -0
  10. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat +1001 -0
  11. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log +261 -0
  12. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat +1000 -0
  13. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat +1001 -0
  14. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat +1000 -0
  15. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat +1001 -0
  16. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat +1000 -0
  17. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat +1001 -0
  18. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log +262 -0
  19. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat +1000 -0
  20. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat +1001 -0
  21. data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log +82 -0
  22. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log +34 -0
  23. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat +900 -0
  24. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat +901 -0
  25. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log +81 -0
  26. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat +1000 -0
  27. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat +1001 -0
  28. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log +82 -0
  29. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat +1000 -0
  30. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat +1001 -0
  31. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log +82 -0
  32. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat +1000 -0
  33. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat +1001 -0
  34. data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log +82 -0
  35. data/benchmarks/generator_benchmark.rb +162 -0
  36. data/benchmarks/parser_benchmark.rb +193 -0
  37. data/bin/edit_json.rb +0 -1
  38. data/bin/prettify_json.rb +0 -1
  39. data/doc-templates/main.txt +284 -0
  40. data/ext/json/ext/generator/extconf.rb +2 -0
  41. data/ext/json/ext/generator/generator.c +62 -18
  42. data/ext/json/ext/parser/extconf.rb +2 -0
  43. data/ext/json/ext/parser/parser.c +128 -81
  44. data/ext/json/ext/parser/parser.rl +31 -7
  45. data/ext/json/ext/parser/unicode.c +4 -4
  46. data/lib/json/add/core.rb +1 -1
  47. data/lib/json/editor.rb +11 -2
  48. data/lib/json/ext.rb +2 -0
  49. data/lib/json/pure/generator.rb +77 -41
  50. data/lib/json/pure/parser.rb +6 -2
  51. data/lib/json/pure.rb +2 -0
  52. data/lib/json/version.rb +1 -1
  53. data/lib/json.rb +0 -221
  54. data/tests/test_json.rb +7 -4
  55. data/tests/test_json_addition.rb +8 -5
  56. data/tests/test_json_fixtures.rb +6 -2
  57. data/tests/test_json_generate.rb +8 -2
  58. data/tests/test_json_rails.rb +30 -2
  59. data/tests/test_json_unicode.rb +8 -7
  60. data/tools/fuzz.rb +0 -1
  61. data/tools/server.rb +0 -1
  62. metadata +46 -9
  63. data/benchmarks/benchmark.txt +0 -133
  64. data/benchmarks/benchmark_generator.rb +0 -48
  65. data/benchmarks/benchmark_parser.rb +0 -26
  66. data/benchmarks/benchmark_rails.rb +0 -26
  67. data/tests/runner.rb +0 -25
@@ -0,0 +1,262 @@
1
+ ========================== 2009-04-01T16:50:52 CEST ===========================
2
+ Benchmarking on ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux].
3
+ Running 'GeneratorBenchmarkPure' for 1000 iterations/method (compare_time=real)
4
+ ===============================================================================
5
+
6
+ This first run is only for warmup.
7
+ GeneratorBenchmarkPure#generator_pretty:
8
+ real total user system
9
+ sum 27.356301069 27.380000000 27.370000000 0.010000000
10
+ min 0.022372007 0.020000000 0.020000000 0.000000000
11
+ std- 0.018178834 0.017248947 0.017256376 -0.000306228
12
+ mean 0.027356301 0.027380000 0.027370000 0.000010000
13
+ std+ 0.036533768 0.037511053 0.037483624 0.000326228
14
+ max 0.059602976 0.060000000 0.060000000 0.010000000
15
+ std 0.009177467 0.010131053 0.010113624 0.000316228
16
+ std% 33.547909026 37.001655096 36.951493429 3162.277660168
17
+ harm 0.025499974 0.024719842 0.024716787 nan
18
+ geo 0.026258699 0.025883656 0.025877881 0.000000000
19
+ q1 0.023006916 0.020000000 0.020000000 0.000000000
20
+ med 0.023234129 0.020000000 0.020000000 0.000000000
21
+ q3 0.024879038 0.030000000 0.030000000 0.000000000
22
+ 1000 36.55465 0.027356301
23
+ calls calls/sec secs/call
24
+
25
+ 0.05774 -|
26
+ 0.05402 -|*
27
+ 0.05030 -|****
28
+ 0.04657 -|***
29
+ 0.04285 -|
30
+ 0.03913 -|
31
+ 0.03540 -|
32
+ 0.03168 -|*
33
+ 0.02796 -|***
34
+ 0.02423 -|**************************************************
35
+
36
+ Outliers detected with box plot algo (median=0.02323, iqr=0.00187, factor=3.00):
37
+ high=72 very_high=150
38
+
39
+ Ljung-Box statistics: q=3705.61130 (alpha=0.05, df=50).
40
+ 1.00000 >= 0.95000 => Autocorrelation was detected.
41
+
42
+ GeneratorBenchmarkPure#generator_pretty:
43
+ real total user system
44
+ sum 27.569372892 27.540000000 27.530000000 0.010000000
45
+ min 0.022536039 0.020000000 0.020000000 0.000000000
46
+ std- 0.018335894 0.017329581 0.017326902 -0.000306228
47
+ mean 0.027569373 0.027540000 0.027530000 0.000010000
48
+ std+ 0.036802852 0.037750419 0.037733098 0.000326228
49
+ max 0.056230068 0.060000000 0.060000000 0.010000000
50
+ std 0.009233479 0.010210419 0.010203098 0.000316228
51
+ std% 33.491797772 37.074868658 37.061742557 3162.277660168
52
+ harm 0.025675439 0.024841635 0.024836493 nan
53
+ geo 0.026453993 0.026024721 0.026017235 0.000000000
54
+ q1 0.023056030 0.020000000 0.020000000 0.000000000
55
+ med 0.023363113 0.020000000 0.020000000 0.000000000
56
+ q3 0.025253892 0.030000000 0.030000000 0.000000000
57
+ 1000 36.27213 0.027569373
58
+ calls calls/sec secs/call
59
+
60
+ 0.05455 -|*
61
+ 0.05118 -|**
62
+ 0.04781 -|******
63
+ 0.04444 -|
64
+ 0.04107 -|
65
+ 0.03770 -|
66
+ 0.03433 -|
67
+ 0.03096 -|*
68
+ 0.02759 -|*****
69
+ 0.02422 -|**************************************************
70
+
71
+ Outliers detected with box plot algo (median=0.02336, iqr=0.00220, factor=3.00):
72
+ high=67 very_high=148
73
+
74
+ Ljung-Box statistics: q=3212.48820 (alpha=0.05, df=50).
75
+ 1.00000 >= 0.95000 => Autocorrelation was detected.
76
+
77
+ No initial data truncated.
78
+ => System may have been in a steady state from the beginning.
79
+ -------------------------------------------------------------------------------
80
+
81
+ This first run is only for warmup.
82
+ GeneratorBenchmarkPure#generator_safe:
83
+ real total user system
84
+ sum 26.869803667 26.870000000 26.870000000 0.000000000
85
+ min 0.022134781 0.020000000 0.020000000 0.000000000
86
+ std- 0.017763505 0.016750439 0.016750439 0.000000000
87
+ mean 0.026869804 0.026870000 0.026870000 0.000000000
88
+ std+ 0.035976103 0.036989561 0.036989561 0.000000000
89
+ max 0.054952860 0.060000000 0.060000000 0.000000000
90
+ std 0.009106299 0.010119561 0.010119561 0.000000000
91
+ std% 33.890455748 37.661185483 37.661185483 nan
92
+ harm 0.024986876 0.024236549 0.024236549 nan
93
+ geo 0.025759291 0.025373850 0.025373850 0.000000000
94
+ q1 0.022480011 0.020000000 0.020000000 0.000000000
95
+ med 0.022669554 0.020000000 0.020000000 0.000000000
96
+ q3 0.024562180 0.030000000 0.030000000 0.000000000
97
+ 1000 37.21650 0.026869804
98
+ calls calls/sec secs/call
99
+
100
+ 0.05331 -|*
101
+ 0.05003 -|**
102
+ 0.04675 -|*******
103
+ 0.04347 -|
104
+ 0.04018 -|
105
+ 0.03690 -|
106
+ 0.03362 -|
107
+ 0.03034 -|*
108
+ 0.02706 -|****
109
+ 0.02378 -|**************************************************
110
+
111
+ Outliers detected with box plot algo (median=0.02267, iqr=0.00208, factor=3.00):
112
+ high=77 very_high=149
113
+
114
+ Ljung-Box statistics: q=3100.69443 (alpha=0.05, df=50).
115
+ 1.00000 >= 0.95000 => Autocorrelation was detected.
116
+
117
+ GeneratorBenchmarkPure#generator_safe:
118
+ real total user system
119
+ sum 27.079979420 27.040000000 27.030000000 0.010000000
120
+ min 0.022160053 0.020000000 0.020000000 0.000000000
121
+ std- 0.017839790 0.016756803 0.016774061 -0.000306228
122
+ mean 0.027079979 0.027040000 0.027030000 0.000010000
123
+ std+ 0.036320169 0.037323197 0.037285939 0.000326228
124
+ max 0.056457043 0.060000000 0.060000000 0.010000000
125
+ std 0.009240189 0.010283197 0.010255939 0.000316228
126
+ std% 34.121847738 38.029575352 37.942800504 3162.277660168
127
+ harm 0.025134510 0.024331887 0.024329914 nan
128
+ geo 0.025935574 0.025501913 0.025497264 0.000000000
129
+ q1 0.022511005 0.020000000 0.020000000 0.000000000
130
+ med 0.022763968 0.020000000 0.020000000 0.000000000
131
+ q3 0.024686873 0.030000000 0.030000000 0.000000000
132
+ 1000 36.92765 0.027079979
133
+ calls calls/sec secs/call
134
+
135
+ 0.05474 -|
136
+ 0.05131 -|*
137
+ 0.04788 -|********
138
+ 0.04445 -|
139
+ 0.04102 -|
140
+ 0.03759 -|
141
+ 0.03416 -|
142
+ 0.03073 -|*
143
+ 0.02730 -|***
144
+ 0.02387 -|**************************************************
145
+
146
+ Outliers detected with box plot algo (median=0.02276, iqr=0.00218, factor=3.00):
147
+ high=53 very_high=158
148
+
149
+ Ljung-Box statistics: q=3263.81737 (alpha=0.05, df=50).
150
+ 1.00000 >= 0.95000 => Autocorrelation was detected.
151
+
152
+ No initial data truncated.
153
+ => System may have been in a steady state from the beginning.
154
+ -------------------------------------------------------------------------------
155
+
156
+ This first run is only for warmup.
157
+ GeneratorBenchmarkPure#generator_fast:
158
+ real total user system
159
+ sum 19.930217266 19.900000000 19.900000000 0.000000000
160
+ min 0.015556812 0.010000000 0.010000000 0.000000000
161
+ std- 0.010984683 0.009865525 0.009865525 0.000000000
162
+ mean 0.019930217 0.019900000 0.019900000 0.000000000
163
+ std+ 0.028875752 0.029934475 0.029934475 0.000000000
164
+ max 0.048508883 0.050000000 0.050000000 0.000000000
165
+ std 0.008945535 0.010034475 0.010034475 0.000000000
166
+ std% 44.884280314 50.424498030 50.424498030 nan
167
+ harm 0.017806422 0.016056519 0.016056519 nan
168
+ geo 0.018618502 0.017792091 0.017792091 0.000000000
169
+ q1 0.015833676 0.010000000 0.010000000 0.000000000
170
+ med 0.016059995 0.020000000 0.020000000 0.000000000
171
+ q3 0.016686678 0.020000000 0.020000000 0.000000000
172
+ 1000 50.17507 0.019930217
173
+ calls calls/sec secs/call
174
+
175
+ 0.04686 -|
176
+ 0.04357 -|**
177
+ 0.04027 -|******
178
+ 0.03698 -|
179
+ 0.03368 -|
180
+ 0.03039 -|
181
+ 0.02709 -|
182
+ 0.02379 -|*
183
+ 0.02050 -|**
184
+ 0.01720 -|**************************************************
185
+
186
+ Outliers detected with box plot algo (median=0.01606, iqr=0.00085, factor=3.00):
187
+ high=46 very_high=180
188
+
189
+ Ljung-Box statistics: q=3486.59836 (alpha=0.05, df=50).
190
+ 1.00000 >= 0.95000 => Autocorrelation was detected.
191
+
192
+ GeneratorBenchmarkPure#generator_fast:
193
+ real total user system
194
+ sum 20.008520842 19.960000000 19.950000000 0.010000000
195
+ min 0.015434027 0.010000000 0.010000000 0.000000000
196
+ std- 0.010882230 0.009581845 0.009596030 -0.000306228
197
+ mean 0.020008521 0.019960000 0.019950000 0.000010000
198
+ std+ 0.029134812 0.030338155 0.030303970 0.000326228
199
+ max 0.047976971 0.050000000 0.050000000 0.010000000
200
+ std 0.009126291 0.010378155 0.010353970 0.000316228
201
+ std% 45.612021047 51.994765712 51.899601404 3162.277660168
202
+ harm 0.017787111 0.015944725 0.015943454 nan
203
+ geo 0.018637889 0.017737808 0.017733851 0.000000000
204
+ q1 0.015746295 0.010000000 0.010000000 0.000000000
205
+ med 0.015944481 0.020000000 0.020000000 0.000000000
206
+ q3 0.016811609 0.020000000 0.020000000 0.000000000
207
+ 1000 49.97871 0.020008521
208
+ calls calls/sec secs/call
209
+
210
+ 0.04635 -|*
211
+ 0.04310 -|**
212
+ 0.03984 -|*******
213
+ 0.03659 -|
214
+ 0.03333 -|
215
+ 0.03008 -|
216
+ 0.02682 -|
217
+ 0.02357 -|
218
+ 0.02032 -|***
219
+ 0.01706 -|**************************************************
220
+
221
+ Outliers detected with box plot algo (median=0.01594, iqr=0.00107, factor=3.00):
222
+ high=64 very_high=166
223
+
224
+ Ljung-Box statistics: q=2965.93220 (alpha=0.05, df=50).
225
+ 1.00000 >= 0.95000 => Autocorrelation was detected.
226
+
227
+ No initial data truncated.
228
+ => System may have been in a steady state from the beginning.
229
+ ========================== 2009-04-01T16:53:33 CEST ===========================
230
+
231
+ Comparing times (call_time_mean):
232
+ 1 GeneratorBenchmarkPure#generator_fast 1000 repeats:
233
+ 49.978706968 ( real) -> 1.378x
234
+ 0.020008521
235
+ 2 GeneratorBenchmarkPure#generator_safe 1000 repeats:
236
+ 36.927649925 ( real) -> 1.018x 3 (>=3859)
237
+ 0.027079979
238
+ 3 GeneratorBenchmarkPure#generator_pretty 1000 repeats:
239
+ 36.272134441 ( real) -> 1.000x 2 (>=3859)
240
+ 0.027569373
241
+ calls/sec ( time) -> speed covers
242
+ secs/call
243
+
244
+ Comparing times (call_time_median):
245
+ 1 GeneratorBenchmarkPure#generator_fast 1000 repeats:
246
+ 62.717626652 ( real) -> 1.465x
247
+ 0.015944481
248
+ 2 GeneratorBenchmarkPure#generator_safe 1000 repeats:
249
+ 43.929073409 ( real) -> 1.026x 3 (>=3859)
250
+ 0.022763968
251
+ 3 GeneratorBenchmarkPure#generator_pretty 1000 repeats:
252
+ 42.802514491 ( real) -> 1.000x 2 (>=3859)
253
+ 0.023363113
254
+ calls/sec ( time) -> speed covers
255
+ secs/call
256
+ ===============================================================================
257
+ Writing measurement data file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_pretty.dat'.
258
+ Writing autocorrelation plot file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat'.
259
+ Writing measurement data file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_safe.dat'.
260
+ Writing autocorrelation plot file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat'.
261
+ Writing measurement data file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_fast.dat'.
262
+ Writing autocorrelation plot file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat'.