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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-developers. For more options, visit https://groups.google.com/groups/opt_out.
