I applied the patch with comment modification to 1.6.x and master.

It seems the change did a lot of good to all of query benchmarks. Most 
1.6.x ORM results are now 1.1 to 1.3x faster than in 1.5.x. Full results in 
the end of this post.

There is still some problems, template rendering seems to be 10% slower. 
model_creation is still 1.15x slower than in 1.5.x. url_reverse is 1.2x 
slower. I don't have time to investigate these more, and in any case these 
aren't critical regressions in any way.

For those who want to run the suite - it seems that if you have new enough 
processor the speed throttling is done in silicon. In that case it will be 
really, really hard to get stable results from djangobench. The best you 
can do is use big amount of trials (-t) and look at the minimum runtime 
instead of the average. There might be some tools for your operating system 
to switch CPU throttling to minimum, so google for those.

 - Anssi

The full results again for latest stable/1.6.x vs stable/1.5.x:

Running 'default_middleware' benchmark ...
Min: 0.000664 -> 0.000336: 1.9766x faster
Avg: 0.000794 -> 0.000398: 1.9932x faster
Significant (t=6.607238)
Stddev: 0.00031 -> 0.00029: 1.0583x smaller (N = 50)

Running 'form_clean' benchmark ...
Min: 0.000021 -> 0.000022: 1.0455x slower
Avg: 0.000026 -> 0.000023: 1.1314x faster
Not significant
Stddev: 0.00002 -> 0.00000: 6.9991x smaller (N = 50)

Running 'form_create' benchmark ...
Min: 0.000046 -> 0.000055: 1.1979x slower
Avg: 0.000049 -> 0.000737: 14.9229x slower # Outlier, as mentioned earlier
Not significant
Stddev: 0.00001 -> 0.00481: 415.8844x larger (N = 50)

Running 'l10n_render' benchmark ...
Min: 0.005955 -> 0.006949: 1.1669x slower
Avg: 0.006347 -> 0.007402: 1.1661x slower
Significant (t=-3.120463)
Stddev: 0.00150 -> 0.00186: 1.2448x larger (N = 50)

Running 'model_creation' benchmark ...
Min: 0.000170 -> 0.000199: 1.1697x slower
Avg: 0.000186 -> 0.000218: 1.1725x slower
Significant (t=-2.009837)
Stddev: 0.00008 -> 0.00008: 1.0107x smaller (N = 50)

Running 'model_delete' benchmark ...
Min: 0.000225 -> 0.000240: 1.0668x slower
Avg: 0.000232 -> 0.000256: 1.1057x slower
Significant (t=-4.861734)
Stddev: 0.00002 -> 0.00003: 1.7163x larger (N = 50)

Running 'model_save_existing' benchmark ...
Min: 0.033559 -> 0.011296: 2.9709x faster
Avg: 0.034041 -> 0.011363: 2.9959x faster
Significant (t=169.025764)
Stddev: 0.00094 -> 0.00010: 9.0688x smaller (N = 50)

Running 'model_save_new' benchmark ...
Min: 0.022818 -> 0.011384: 2.0044x faster
Avg: 0.033812 -> 0.011772: 2.8721x faster
Significant (t=82.502660)
Stddev: 0.00177 -> 0.00065: 2.7339x smaller (N = 50)

Running 'multi_value_dict' benchmark ...
Min: 0.000043 -> 0.000044: 1.0335x slower
Avg: 0.000079 -> 0.000081: 1.0363x slower
Not significant
Stddev: 0.00002 -> 0.00002: 1.0079x larger (N = 50)

Running 'qs_filter_chaining' benchmark ...
Min: 0.002281 -> 0.000742: 3.0742x faster
Avg: 0.002331 -> 0.000765: 3.0468x faster
Significant (t=133.899536)
Stddev: 0.00007 -> 0.00004: 1.5650x smaller (N = 50)

Running 'query_aggregate' benchmark ...
Min: 0.000254 -> 0.000209: 1.2144x faster
Avg: 0.000316 -> 0.000215: 1.4680x faster
Significant (t=3.067214)
Stddev: 0.00023 -> 0.00001: 16.9474x smaller (N = 50)

Running 'query_all' benchmark ...
Min: 0.024302 -> 0.021535: 1.1285x faster
Avg: 0.025855 -> 0.023171: 1.1158x faster
Significant (t=5.678997)
Stddev: 0.00243 -> 0.00230: 1.0566x smaller (N = 50)

Running 'query_all_multifield' benchmark ...
Min: 0.050120 -> 0.048104: 1.0419x faster
Avg: 0.052968 -> 0.050711: 1.0445x faster
Significant (t=3.563558)
Stddev: 0.00353 -> 0.00276: 1.2772x smaller (N = 50)

Running 'query_annotate' benchmark ...
Min: 0.000521 -> 0.000438: 1.1894x faster
Avg: 0.000533 -> 0.000453: 1.1781x faster
Significant (t=11.172131)
Stddev: 0.00003 -> 0.00004: 1.2886x larger (N = 50)

Running 'query_complex_filter' benchmark ...
Min: 0.000166 -> 0.000119: 1.3948x faster
Avg: 0.000172 -> 0.000123: 1.3995x faster
Significant (t=12.315270)
Stddev: 0.00003 -> 0.00001: 2.4050x smaller (N = 50)

Running 'query_count' benchmark ...
Min: 0.000211 -> 0.000170: 1.2412x faster
Avg: 0.000215 -> 0.000177: 1.2131x faster
Significant (t=9.985689)
Stddev: 0.00001 -> 0.00003: 4.9672x larger (N = 50)

Running 'query_dates' benchmark ...
Min: 0.000540 -> 0.000433: 1.2472x faster
Avg: 0.000550 -> 0.000446: 1.2348x faster
Significant (t=21.074766)
Stddev: 0.00002 -> 0.00003: 1.4789x larger (N = 50)

Running 'query_delete' benchmark ...
Min: 0.000260 -> 0.000215: 1.2095x faster
Avg: 0.000284 -> 0.000228: 1.2420x faster
Significant (t=7.900090)
Stddev: 0.00004 -> 0.00003: 1.1254x smaller (N = 50)

Running 'query_delete_related' benchmark ...
Min: 0.000308 -> 0.000275: 1.1206x faster
Avg: 0.000337 -> 0.000300: 1.1247x faster
Not significant
Stddev: 0.00017 -> 0.00013: 1.3042x smaller (N = 50)

Running 'query_distinct' benchmark ...
Min: 0.000339 -> 0.000281: 1.2071x faster
Avg: 0.000352 -> 0.000285: 1.2336x faster
Significant (t=14.178698)
Stddev: 0.00003 -> 0.00001: 4.4532x smaller (N = 50)

Running 'query_exclude' benchmark ...
Min: 0.000462 -> 0.000398: 1.1606x faster
Avg: 0.000527 -> 0.000411: 1.2815x faster
Significant (t=2.370629)
Stddev: 0.00034 -> 0.00004: 9.3797x smaller (N = 50)

Running 'query_exists' benchmark ...
Min: 0.000947 -> 0.000638: 1.4843x faster
Avg: 0.000990 -> 0.000650: 1.5238x faster
Significant (t=34.697977)
Stddev: 0.00006 -> 0.00003: 2.1227x smaller (N = 50)

Running 'query_filter' benchmark ...
Min: 0.000364 -> 0.000319: 1.1413x faster
Avg: 0.000383 -> 0.000327: 1.1706x faster
Significant (t=9.397065)
Stddev: 0.00004 -> 0.00002: 2.0343x smaller (N = 50)

Running 'query_get' benchmark ...
Min: 0.027517 -> 0.020415: 1.3479x faster
Avg: 0.028344 -> 0.020477: 1.3842x faster
Significant (t=39.114789)
Stddev: 0.00142 -> 0.00009: 16.1124x smaller (N = 50)

Running 'query_get_or_create' benchmark ...
Min: 0.001197 -> 0.000906: 1.3211x faster
Avg: 0.001232 -> 0.001192: 1.0337x faster
Not significant
Stddev: 0.00012 -> 0.00087: 7.3709x larger (N = 50)

Running 'query_in_bulk' benchmark ...
Min: 0.000545 -> 0.000386: 1.4120x faster
Avg: 0.000564 -> 0.000391: 1.4425x faster
Significant (t=33.024332)
Stddev: 0.00004 -> 0.00001: 3.5961x smaller (N = 50)

Running 'query_iterator' benchmark ...
Min: 0.000240 -> 0.000241: 1.0050x slower
Avg: 0.000249 -> 0.000247: 1.0085x faster
Not significant
Stddev: 0.00003 -> 0.00001: 1.8530x smaller (N = 50)

Running 'query_latest' benchmark ...
Min: 0.000389 -> 0.000300: 1.2973x faster
Avg: 0.000395 -> 0.000306: 1.2915x faster
Significant (t=44.752323)
Stddev: 0.00001 -> 0.00001: 1.0133x smaller (N = 50)

Running 'query_none' benchmark ...
Min: 0.000023 -> 0.000143: 6.2500x slower
Avg: 0.000030 -> 0.000157: 5.2721x slower
Significant (t=-10.188504)
Stddev: 0.00003 -> 0.00008: 2.7955x larger (N = 50)

Running 'query_order_by' benchmark ...
Min: 0.000374 -> 0.000312: 1.1995x faster
Avg: 0.000382 -> 0.000414: 1.0824x slower
Not significant
Stddev: 0.00002 -> 0.00058: 35.2597x larger (N = 50)

Running 'query_prefetch_related' benchmark ...
Min: 0.084790 -> 0.074169: 1.1432x faster
Avg: 0.087851 -> 0.075783: 1.1592x faster
Significant (t=21.229145)
Stddev: 0.00330 -> 0.00229: 1.4391x smaller (N = 50)

Running 'query_raw' benchmark ...
Min: 0.017246 -> 0.016537: 1.0429x faster
Avg: 0.018250 -> 0.017461: 1.0452x faster
Significant (t=2.614257)
Stddev: 0.00158 -> 0.00143: 1.1072x smaller (N = 50)

Running 'query_raw_deferred' benchmark ...
Min: 0.017370 -> 0.016547: 1.0498x faster
Avg: 0.018145 -> 0.017486: 1.0377x faster
Significant (t=2.678211)
Stddev: 0.00113 -> 0.00132: 1.1658x larger (N = 50)

Running 'query_select_related' benchmark ...
Min: 0.051630 -> 0.047755: 1.0811x faster
Avg: 0.053473 -> 0.049181: 1.0873x faster
Significant (t=8.778098)
Stddev: 0.00279 -> 0.00204: 1.3657x smaller (N = 50)

Running 'query_update' benchmark ...
Min: 0.000258 -> 0.000207: 1.2465x faster
Avg: 0.000262 -> 0.000214: 1.2291x faster
Significant (t=14.744239)
Stddev: 0.00001 -> 0.00002: 2.5651x larger (N = 50)

Running 'query_values' benchmark ...
Min: 0.000287 -> 0.000234: 1.2261x faster
Avg: 0.000296 -> 0.000244: 1.2112x faster
Significant (t=9.958586)
Stddev: 0.00003 -> 0.00002: 1.1389x smaller (N = 50)

Running 'query_values_list' benchmark ...
Min: 0.000275 -> 0.000223: 1.2332x faster
Avg: 0.000282 -> 0.000228: 1.2372x faster
Significant (t=20.434607)
Stddev: 0.00002 -> 0.00001: 1.9907x smaller (N = 50)

Running 'raw_sql' benchmark ...
Min: 0.000032 -> 0.000031: 1.0308x faster
Avg: 0.000035 -> 0.000035: 1.0004x slower
Not significant
Stddev: 0.00002 -> 0.00001: 1.3221x smaller (N = 50)

Running 'startup' benchmark ...
0.125861 -> 0.130687: 1.0383x slower

Running 'template_compilation' benchmark ...
Min: 0.000521 -> 0.000530: 1.0174x slower
Avg: 0.000947 -> 0.000937: 1.0109x faster
Not significant
Stddev: 0.00287 -> 0.00273: 1.0542x smaller (N = 50)

Running 'template_render' benchmark ...
Min: 0.009610 -> 0.010202: 1.0616x slower
Avg: 0.009953 -> 0.010562: 1.0612x slower
Significant (t=-2.650533)
Stddev: 0.00111 -> 0.00119: 1.0795x larger (N = 50)

Running 'template_render_simple' benchmark ...
Min: 0.000089 -> 0.000098: 1.0989x slower
Avg: 0.000498 -> 0.000479: 1.0392x faster
Not significant
Stddev: 0.00285 -> 0.00268: 1.0620x smaller (N = 50)

Running 'url_resolve' benchmark ...
Min: 0.012781 -> 0.012947: 1.0130x slower
Avg: 0.013025 -> 0.013276: 1.0193x slower
Not significant
Stddev: 0.00045 -> 0.00078: 1.7174x larger (N = 50)

Running 'url_resolve_flat' benchmark ...
Min: 0.199759 -> 0.207931: 1.0409x slower
Avg: 0.203866 -> 0.211151: 1.0357x slower
Significant (t=-9.447621)
Stddev: 0.00395 -> 0.00376: 1.0491x smaller (N = 50)

Running 'url_resolve_flat_i18n_off' benchmark ...
Min: 0.260341 -> 0.267843: 1.0288x slower
Avg: 0.263846 -> 0.270912: 1.0268x slower
Significant (t=-8.220922)
Stddev: 0.00444 -> 0.00415: 1.0684x smaller (N = 50)

Running 'url_resolve_nested' benchmark ...
Min: 0.000081 -> 0.000084: 1.0353x slower
Avg: 0.000249 -> 0.000234: 1.0639x faster
Not significant
Stddev: 0.00117 -> 0.00105: 1.1192x smaller (N = 50)

Running 'url_reverse' benchmark ...
Min: 0.000212 -> 0.000258: 1.2182x slower
Avg: 0.000267 -> 0.000310: 1.1592x slower
Not significant
Stddev: 0.00036 -> 0.00034: 1.0476x smaller (N = 50)


-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at http://groups.google.com/group/django-developers.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to