mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 20:40:17 +02:00
976 lines
33 KiB
Markdown
976 lines
33 KiB
Markdown
# Python
|
|
|
|
## Version Update
|
|
|
|
Newer versions of python can focus heavily on performance improvements, some more than others. But be aware regressions for stability or security reasons may always be the case.
|
|
|
|
As a general rule, Python 3.9 and Python 3.11 both had a strong focus on performance improvements. Python 3.12 is looking promising but has yet to have widespread testing, adoption and deployment. A simple comparison is available at [speed.python.org](https://speed.python.org/comparison/?exe=12%2BL%2B3.11%2C12%2BL%2B3.12%2C12%2BL%2B3.10%2C12%2BL%2B3.9%2C12%2BL%2B3.8&ben=746&env=1&hor=false&bas=none&chart=normal+bars).
|
|
|
|
[Djangobench](https://github.com/django/djangobench/tree/master) is the source of synthetic benchmarks and a useful tool for running comparisons. Below are some examples to inform your investigations.
|
|
|
|
Keep in mind while a 1.2x faster result is significant, it's only one step of the process, Celery, SQL, Redis, and many other factors will influence the end result, and this _python_ speed improvement will not translate 1:1 into real world performance.
|
|
|
|
### Running Djangobench
|
|
|
|
```bash
|
|
python3.8 -m venv py38
|
|
python3.11 -m venv py311
|
|
pip install -e git://github.com/django/djangobench.git#egg=djangobench
|
|
git clone https://github.com/django/django.git
|
|
cd django
|
|
djangobench --control=x --experiment=x --control-python=x --experiment-python=x -r /home/ozira/djangobench/results -t 500
|
|
```
|
|
|
|
### Django 4.2.13 Py38 v Py311
|
|
|
|
- Djangobench 0.10.0
|
|
- Django 4.2.13
|
|
- Python 3.8.19 vs Python 3.11.5
|
|
|
|
```bash
|
|
python3.8 -m venv py38
|
|
python3.11 -m venv py38
|
|
pip install -e git://github.com/django/djangobench.git#egg=djangobench
|
|
git clone https://github.com/django/django.git
|
|
cd django
|
|
|
|
ozira@METABOX:~/djangobench/django$ djangobench --control=4.2.13 --experiment=4.2.13 --control-python=/home/ozira/djangobench/py38/bin/python --experiment-python=/home/ozira/djangobench/py311/bin/python -r /home/ozira/djangobench/results -t 500
|
|
Running all benchmarks
|
|
Recording data to '/home/ozira/djangobench/results'
|
|
Control: Django 4.2 (in git branch 4.2)
|
|
Experiment: Django 4.2 (in git branch 4.2)
|
|
|
|
Running 'multi_value_dict' benchmark ...
|
|
Min: 0.000016 -> 0.000014: 1.1215x faster
|
|
Avg: 0.000212 -> 0.000158: 1.3378x faster
|
|
Significant (t=8.313771)
|
|
Stddev: 0.00012 -> 0.00008: 1.3703x smaller (N = 500)
|
|
|
|
Running 'query_values' benchmark ...
|
|
Min: 0.000096 -> 0.000083: 1.1540x faster
|
|
Avg: 0.000100 -> 0.000087: 1.1391x faster
|
|
Significant (t=20.039719)
|
|
Stddev: 0.00001 -> 0.00001: 1.0402x smaller (N = 500)
|
|
|
|
Running 'query_delete' benchmark ...
|
|
Min: 0.000089 -> 0.000077: 1.1555x faster
|
|
Avg: 0.000094 -> 0.000082: 1.1492x faster
|
|
Significant (t=24.020715)
|
|
Stddev: 0.00001 -> 0.00001: 1.0738x smaller (N = 500)
|
|
|
|
Running 'query_select_related' benchmark ...
|
|
Min: 0.021098 -> 0.017898: 1.1788x faster
|
|
Avg: 0.027279 -> 0.019895: 1.3712x faster
|
|
Significant (t=31.103306)
|
|
Stddev: 0.00486 -> 0.00213: 2.2832x smaller (N = 500)
|
|
|
|
Running 'query_aggregate' benchmark ...
|
|
Min: 0.000162 -> 0.000140: 1.1626x faster
|
|
Avg: 0.000184 -> 0.000153: 1.2025x faster
|
|
Significant (t=20.672411)
|
|
Stddev: 0.00003 -> 0.00002: 1.2643x smaller (N = 500)
|
|
|
|
Running 'query_raw_deferred' benchmark ...
|
|
Min: 0.005456 -> 0.004688: 1.1637x faster
|
|
Avg: 0.006070 -> 0.005151: 1.1786x faster
|
|
Significant (t=10.912514)
|
|
Stddev: 0.00155 -> 0.00107: 1.4503x smaller (N = 500)
|
|
|
|
Running 'query_get_or_create' benchmark ...
|
|
Min: 0.000526 -> 0.000457: 1.1526x faster
|
|
Avg: 0.000597 -> 0.000546: 1.0946x faster
|
|
Significant (t=7.469654)
|
|
Stddev: 0.00010 -> 0.00012: 1.1192x larger (N = 500)
|
|
|
|
Running 'query_values_list' benchmark ...
|
|
Min: 0.000102 -> 0.000090: 1.1403x faster
|
|
Avg: 0.000113 -> 0.000096: 1.1733x faster
|
|
Significant (t=13.975856)
|
|
Stddev: 0.00002 -> 0.00001: 2.0715x smaller (N = 500)
|
|
|
|
Running 'url_resolve_flat_i18n_off' benchmark ...
|
|
Min: 0.069399 -> 0.058137: 1.1937x faster
|
|
Avg: 0.074039 -> 0.064810: 1.1424x faster
|
|
Significant (t=21.837249)
|
|
Stddev: 0.00341 -> 0.00881: 2.5880x larger (N = 500)
|
|
|
|
Running 'qs_filter_chaining' benchmark ...
|
|
Min: 0.000304 -> 0.000263: 1.1583x faster
|
|
Avg: 0.000321 -> 0.000281: 1.1424x faster
|
|
Significant (t=15.363420)
|
|
Stddev: 0.00003 -> 0.00005: 1.8538x larger (N = 500)
|
|
|
|
Running 'template_render' benchmark ...
|
|
Min: 0.001211 -> 0.000970: 1.2490x faster
|
|
Avg: 0.001471 -> 0.001360: 1.0816x faster
|
|
Significant (t=2.688854)
|
|
Stddev: 0.00067 -> 0.00064: 1.0463x smaller (N = 500)
|
|
|
|
Running 'query_get' benchmark ...
|
|
Min: 0.000340 -> 0.000295: 1.1554x faster
|
|
Avg: 0.000382 -> 0.000324: 1.1797x faster
|
|
Significant (t=26.055010)
|
|
Stddev: 0.00004 -> 0.00003: 1.5530x smaller (N = 500)
|
|
|
|
Running 'query_none' benchmark ...
|
|
Min: 0.000082 -> 0.000074: 1.1133x faster
|
|
Avg: 0.000089 -> 0.000081: 1.0934x faster
|
|
Significant (t=2.334959)
|
|
Stddev: 0.00005 -> 0.00005: 1.0667x larger (N = 500)
|
|
|
|
Running 'query_complex_filter' benchmark ...
|
|
Min: 0.000050 -> 0.000053: 1.0480x slower
|
|
Avg: 0.000055 -> 0.000058: 1.0495x slower
|
|
Significant (t=-3.073848)
|
|
Stddev: 0.00001 -> 0.00001: 1.0593x larger (N = 500)
|
|
|
|
Running 'query_filter' benchmark ...
|
|
Min: 0.000169 -> 0.000157: 1.0758x faster
|
|
Avg: 0.000186 -> 0.000173: 1.0756x faster
|
|
Significant (t=9.677659)
|
|
Stddev: 0.00002 -> 0.00002: 1.0462x smaller (N = 500)
|
|
|
|
Running 'template_render_simple' benchmark ...
|
|
Min: 0.000039 -> 0.000034: 1.1694x faster
|
|
Avg: 0.000046 -> 0.000040: 1.1437x faster
|
|
Not significant
|
|
Stddev: 0.00010 -> 0.00008: 1.2071x smaller (N = 500)
|
|
|
|
Running 'default_middleware' benchmark ...
|
|
Min: -0.000061 -> -0.000088: 0.6901x faster
|
|
Avg: 0.000002 -> 0.000001: 2.1933x faster
|
|
Not significant
|
|
Stddev: 0.00003 -> 0.00002: 1.5573x smaller (N = 500)
|
|
|
|
Running 'query_annotate' benchmark ...
|
|
Min: 0.000237 -> 0.000216: 1.0986x faster
|
|
Avg: 0.000279 -> 0.000252: 1.1089x faster
|
|
Significant (t=9.006132)
|
|
Stddev: 0.00006 -> 0.00004: 1.6353x smaller (N = 500)
|
|
|
|
Running 'raw_sql' benchmark ...
|
|
Min: 0.000021 -> 0.000014: 1.4549x faster
|
|
Avg: 0.000022 -> 0.000015: 1.4636x faster
|
|
Significant (t=30.661315)
|
|
Stddev: 0.00000 -> 0.00000: 2.1050x smaller (N = 500)
|
|
|
|
Running 'url_resolve_flat' benchmark ...
|
|
Min: 0.069107 -> 0.056678: 1.2193x faster
|
|
Avg: 0.076299 -> 0.066199: 1.1526x faster
|
|
Significant (t=16.072616)
|
|
Stddev: 0.00711 -> 0.01212: 1.7039x larger (N = 500)
|
|
|
|
Running 'l10n_render' benchmark ...
|
|
Min: 0.002025 -> 0.001557: 1.3009x faster
|
|
Avg: 0.002215 -> 0.001671: 1.3258x faster
|
|
Significant (t=23.802622)
|
|
Stddev: 0.00045 -> 0.00025: 1.7786x smaller (N = 500)
|
|
|
|
Running 'query_count' benchmark ...
|
|
Min: 0.000145 -> 0.000130: 1.1209x faster
|
|
Avg: 0.000165 -> 0.000148: 1.1163x faster
|
|
Significant (t=6.919972)
|
|
Stddev: 0.00005 -> 0.00003: 1.5444x smaller (N = 500)
|
|
|
|
Running 'model_delete' benchmark ...
|
|
Min: 0.000148 -> 0.000123: 1.2062x faster
|
|
Avg: 0.000172 -> 0.000138: 1.2410x faster
|
|
Significant (t=27.181750)
|
|
Stddev: 0.00002 -> 0.00002: 1.1414x smaller (N = 500)
|
|
|
|
Running 'query_iterator' benchmark ...
|
|
Min: 0.000189 -> 0.000109: 1.7400x faster
|
|
Avg: 0.000208 -> 0.000118: 1.7557x faster
|
|
Significant (t=49.768122)
|
|
Stddev: 0.00003 -> 0.00002: 1.5989x smaller (N = 500)
|
|
|
|
Running 'template_compilation' benchmark ...
|
|
Min: 0.000206 -> 0.000173: 1.1888x faster
|
|
Avg: 0.000223 -> 0.000219: 1.0169x faster
|
|
Not significant
|
|
Stddev: 0.00011 -> 0.00011: 1.0781x smaller (N = 500)
|
|
|
|
Running 'query_all_multifield' benchmark ...
|
|
Min: 0.018550 -> 0.015556: 1.1925x faster
|
|
Avg: 0.021732 -> 0.017870: 1.2161x faster
|
|
Significant (t=17.544643)
|
|
Stddev: 0.00371 -> 0.00324: 1.1438x smaller (N = 500)
|
|
|
|
Running 'query_prefetch_related' benchmark ...
|
|
Min: 0.017945 -> 0.015631: 1.1480x faster
|
|
Avg: 0.021111 -> 0.018532: 1.1391x faster
|
|
Significant (t=12.174441)
|
|
Stddev: 0.00352 -> 0.00316: 1.1143x smaller (N = 500)
|
|
|
|
Running 'query_all_converters' benchmark ...
|
|
Min: 0.000639 -> 0.000543: 1.1774x faster
|
|
Avg: 0.000693 -> 0.000583: 1.1878x faster
|
|
Significant (t=32.728842)
|
|
Stddev: 0.00004 -> 0.00006: 1.4338x larger (N = 500)
|
|
|
|
Running 'query_distinct' benchmark ...
|
|
Min: 0.000132 -> 0.000138: 1.0442x slower
|
|
Avg: 0.000138 -> 0.000149: 1.0834x slower
|
|
Significant (t=-11.713427)
|
|
Stddev: 0.00002 -> 0.00002: 1.0455x larger (N = 500)
|
|
|
|
Running 'query_dates' benchmark ...
|
|
Min: 0.000426 -> 0.000372: 1.1440x faster
|
|
Avg: 0.000479 -> 0.000430: 1.1135x faster
|
|
Significant (t=15.165974)
|
|
Stddev: 0.00005 -> 0.00006: 1.2095x larger (N = 500)
|
|
|
|
Running 'model_save_existing' benchmark ...
|
|
Min: 0.004182 -> 0.003730: 1.1212x faster
|
|
Avg: 0.004460 -> 0.004028: 1.1073x faster
|
|
Significant (t=33.972394)
|
|
Stddev: 0.00019 -> 0.00021: 1.0838x larger (N = 500)
|
|
|
|
Running 'query_delete_related' benchmark ...
|
|
Min: 0.000140 -> 0.000126: 1.1047x faster
|
|
Avg: 0.000159 -> 0.000143: 1.1088x faster
|
|
Significant (t=3.361755)
|
|
Stddev: 0.00006 -> 0.00009: 1.4858x larger (N = 500)
|
|
|
|
Running 'url_reverse' benchmark ...
|
|
Min: 0.000072 -> 0.000099: 1.3810x slower
|
|
Avg: 0.000104 -> 0.000112: 1.0749x slower
|
|
Not significant
|
|
Stddev: 0.00033 -> 0.00008: 3.9995x smaller (N = 500)
|
|
|
|
Running 'query_latest' benchmark ...
|
|
Min: 0.000177 -> 0.000150: 1.1805x faster
|
|
Avg: 0.000199 -> 0.000167: 1.1891x faster
|
|
Significant (t=16.579351)
|
|
Stddev: 0.00003 -> 0.00003: 1.2223x smaller (N = 500)
|
|
|
|
Running 'form_create' benchmark ...
|
|
Min: 0.000018 -> 0.000015: 1.1897x faster
|
|
Avg: 0.000024 -> 0.000018: 1.3592x faster
|
|
Significant (t=4.264451)
|
|
Stddev: 0.00003 -> 0.00002: 1.3397x smaller (N = 500)
|
|
|
|
Running 'query_update' benchmark ...
|
|
Min: 0.000062 -> 0.000047: 1.3306x faster
|
|
Avg: 0.000067 -> 0.000053: 1.2660x faster
|
|
Significant (t=25.960527)
|
|
Stddev: 0.00001 -> 0.00001: 1.2136x larger (N = 500)
|
|
|
|
Running 'query_in_bulk' benchmark ...
|
|
Min: 0.000196 -> 0.000183: 1.0695x faster
|
|
Avg: 0.000238 -> 0.000212: 1.1222x faster
|
|
Significant (t=9.208556)
|
|
Stddev: 0.00005 -> 0.00004: 1.0293x smaller (N = 500)
|
|
|
|
Running 'url_resolve_nested' benchmark ...
|
|
Min: 0.000058 -> 0.000047: 1.2381x faster
|
|
Avg: 0.000094 -> 0.000060: 1.5585x faster
|
|
Not significant
|
|
Stddev: 0.00047 -> 0.00020: 2.2921x smaller (N = 500)
|
|
|
|
Running 'model_creation' benchmark ...
|
|
Min: 0.000086 -> 0.000071: 1.2232x faster
|
|
Avg: 0.000096 -> 0.000080: 1.1972x faster
|
|
Significant (t=5.528555)
|
|
Stddev: 0.00004 -> 0.00005: 1.1460x larger (N = 500)
|
|
|
|
Running 'query_order_by' benchmark ...
|
|
Min: 0.000180 -> 0.000153: 1.1761x faster
|
|
Avg: 0.000192 -> 0.000168: 1.1406x faster
|
|
Significant (t=14.472948)
|
|
Stddev: 0.00002 -> 0.00003: 1.0888x larger (N = 500)
|
|
|
|
Running 'startup' benchmark ...
|
|
Skipped: Django 1.9 and later has changed app loading. This benchmark needs fixing anyway.
|
|
|
|
Running 'form_clean' benchmark ...
|
|
Min: 0.000006 -> 0.000005: 1.2056x faster
|
|
Avg: 0.000006 -> 0.000006: 1.1728x faster
|
|
Significant (t=5.893457)
|
|
Stddev: 0.00000 -> 0.00000: 1.4504x larger (N = 500)
|
|
|
|
Running 'locale_from_request' benchmark ...
|
|
Min: 0.000122 -> 0.000113: 1.0747x faster
|
|
Avg: 0.000130 -> 0.000119: 1.0879x faster
|
|
Significant (t=2.108857)
|
|
Stddev: 0.00009 -> 0.00007: 1.2298x smaller (N = 500)
|
|
|
|
Running 'query_exists' benchmark ...
|
|
Min: 0.000411 -> 0.000351: 1.1700x faster
|
|
Avg: 0.000472 -> 0.000406: 1.1616x faster
|
|
Significant (t=20.906891)
|
|
Stddev: 0.00005 -> 0.00004: 1.2381x smaller (N = 500)
|
|
|
|
Running 'query_values_10000' benchmark ...
|
|
Min: 0.006930 -> 0.006720: 1.0312x faster
|
|
Avg: 0.008118 -> 0.007403: 1.0966x faster
|
|
Significant (t=8.797671)
|
|
Stddev: 0.00137 -> 0.00119: 1.1526x smaller (N = 500)
|
|
|
|
Running 'query_exclude' benchmark ...
|
|
Min: 0.000197 -> 0.000166: 1.1884x faster
|
|
Avg: 0.000220 -> 0.000183: 1.2010x faster
|
|
Significant (t=22.491738)
|
|
Stddev: 0.00003 -> 0.00002: 1.2009x smaller (N = 500)
|
|
|
|
Running 'query_raw' benchmark ...
|
|
Min: 0.006850 -> 0.005836: 1.1739x faster
|
|
Avg: 0.007724 -> 0.006518: 1.1851x faster
|
|
Significant (t=13.372258)
|
|
Stddev: 0.00168 -> 0.00111: 1.5089x smaller (N = 500)
|
|
|
|
Running 'url_resolve' benchmark ...
|
|
Min: 0.006464 -> 0.005129: 1.2602x faster
|
|
Avg: 0.006980 -> 0.005578: 1.2512x faster
|
|
Significant (t=62.894242)
|
|
Stddev: 0.00044 -> 0.00023: 1.8763x smaller (N = 500)
|
|
|
|
Running 'model_save_new' benchmark ...
|
|
Min: 0.004156 -> 0.003608: 1.1519x faster
|
|
Avg: 0.004399 -> 0.003921: 1.1220x faster
|
|
Significant (t=31.848867)
|
|
Stddev: 0.00022 -> 0.00026: 1.1820x larger (N = 500)
|
|
|
|
Running 'query_all' benchmark ...
|
|
Min: 0.009951 -> 0.008729: 1.1399x faster
|
|
Avg: 0.011392 -> 0.010135: 1.1240x faster
|
|
Significant (t=7.913017)
|
|
Stddev: 0.00257 -> 0.00246: 1.0449x smaller (N = 500)
|
|
```
|
|
|
|
### Django 4.2.13 Py311 v Py312
|
|
|
|
- Djangobench 0.10.0
|
|
- Django 4.2.13
|
|
- Python 3.11.9 vs Python 3.12.3
|
|
|
|
```bash
|
|
python3.8 -m venv py38
|
|
python3.11 -m venv py38
|
|
pip install -e git://github.com/django/djangobench.git#egg=djangobench
|
|
git clone https://github.com/django/django.git
|
|
cd django
|
|
|
|
ozira@METABOX:~/djangobench/django$ djangobench --control=4.2.13 --experiment=4.2.13 --control-python=/home/ozira/djangobench/py311/bin/python --experiment-python=/home/ozira/djangobench/py312/bin/python -r /home/ozira/djangobench/results -t 500
|
|
Running all benchmarks
|
|
Recording data to '/home/ozira/djangobench/results'
|
|
Control: Django 4.2.13 (in git branch 4.2.13)
|
|
Experiment: Django 4.2.13 (in git branch 4.2.13)
|
|
|
|
Running 'multi_value_dict' benchmark ...
|
|
Min: 0.000015 -> 0.000012: 1.2159x faster
|
|
Avg: 0.000153 -> 0.000145: 1.0567x faster
|
|
Not significant
|
|
Stddev: 0.00008 -> 0.00008: 1.0399x smaller (N = 500)
|
|
|
|
Running 'query_values' benchmark ...
|
|
Min: 0.000080 -> 0.000074: 1.0884x faster
|
|
Avg: 0.000086 -> 0.000080: 1.0848x faster
|
|
Significant (t=9.315400)
|
|
Stddev: 0.00001 -> 0.00001: 1.3002x larger (N = 500)
|
|
|
|
Running 'query_delete' benchmark ...
|
|
Min: 0.000076 -> 0.000073: 1.0437x faster
|
|
Avg: 0.000082 -> 0.000078: 1.0473x faster
|
|
Significant (t=6.287296)
|
|
Stddev: 0.00001 -> 0.00001: 1.2237x smaller (N = 500)
|
|
|
|
Running 'query_select_related' benchmark ...
|
|
Min: 0.015799 -> 0.015198: 1.0395x faster
|
|
Avg: 0.017664 -> 0.016664: 1.0600x faster
|
|
Significant (t=12.493385)
|
|
Stddev: 0.00129 -> 0.00124: 1.0404x smaller (N = 500)
|
|
|
|
Running 'query_aggregate' benchmark ...
|
|
Min: 0.000180 -> 0.000170: 1.0605x faster
|
|
Avg: 0.000196 -> 0.000202: 1.0290x slower
|
|
Significant (t=-3.095949)
|
|
Stddev: 0.00002 -> 0.00003: 1.6034x larger (N = 500)
|
|
|
|
Running 'query_raw_deferred' benchmark ...
|
|
Min: 0.004605 -> 0.003799: 1.2122x faster
|
|
Avg: 0.005051 -> 0.004491: 1.1246x faster
|
|
Significant (t=7.096110)
|
|
Stddev: 0.00099 -> 0.00146: 1.4821x larger (N = 500)
|
|
|
|
Running 'query_get_or_create' benchmark ...
|
|
Min: 0.000407 -> 0.000441: 1.0838x slower
|
|
Avg: 0.000467 -> 0.000504: 1.0794x slower
|
|
Significant (t=-6.031826)
|
|
Stddev: 0.00009 -> 0.00010: 1.1220x larger (N = 500)
|
|
|
|
Running 'query_values_list' benchmark ...
|
|
Min: 0.000079 -> 0.000078: 1.0091x faster
|
|
Avg: 0.000085 -> 0.000085: 1.0028x slower
|
|
Not significant
|
|
Stddev: 0.00001 -> 0.00001: 1.5801x larger (N = 500)
|
|
|
|
Running 'url_resolve_flat_i18n_off' benchmark ...
|
|
Min: 0.054191 -> 0.052512: 1.0320x faster
|
|
Avg: 0.062988 -> 0.056872: 1.1075x faster
|
|
Significant (t=14.068836)
|
|
Stddev: 0.00854 -> 0.00465: 1.8373x smaller (N = 500)
|
|
|
|
Running 'qs_filter_chaining' benchmark ...
|
|
Min: 0.000253 -> 0.000233: 1.0868x faster
|
|
Avg: 0.000274 -> 0.000251: 1.0890x faster
|
|
Significant (t=12.292236)
|
|
Stddev: 0.00003 -> 0.00003: 1.2192x smaller (N = 500)
|
|
|
|
Running 'template_render' benchmark ...
|
|
Min: 0.000882 -> 0.000826: 1.0679x faster
|
|
Avg: 0.001003 -> 0.000906: 1.1072x faster
|
|
Significant (t=3.338298)
|
|
Stddev: 0.00054 -> 0.00036: 1.5250x smaller (N = 500)
|
|
|
|
Running 'query_get' benchmark ...
|
|
Min: 0.000280 -> 0.000263: 1.0631x faster
|
|
Avg: 0.000303 -> 0.000292: 1.0373x faster
|
|
Significant (t=6.991086)
|
|
Stddev: 0.00002 -> 0.00002: 1.0173x smaller (N = 500)
|
|
|
|
Running 'query_none' benchmark ...
|
|
Min: 0.000052 -> 0.000050: 1.0482x faster
|
|
Avg: 0.000058 -> 0.000056: 1.0345x faster
|
|
Not significant
|
|
Stddev: 0.00003 -> 0.00006: 1.9705x larger (N = 500)
|
|
|
|
Running 'query_complex_filter' benchmark ...
|
|
Min: 0.000038 -> 0.000035: 1.0815x faster
|
|
Avg: 0.000040 -> 0.000037: 1.0691x faster
|
|
Significant (t=10.690955)
|
|
Stddev: 0.00000 -> 0.00000: 1.3311x larger (N = 500)
|
|
|
|
Running 'query_filter' benchmark ...
|
|
Min: 0.000141 -> 0.000176: 1.2429x slower
|
|
Avg: 0.000156 -> 0.000216: 1.3882x slower
|
|
Significant (t=-42.392024)
|
|
Stddev: 0.00002 -> 0.00003: 1.8049x larger (N = 500)
|
|
|
|
Running 'template_render_simple' benchmark ...
|
|
Min: 0.000030 -> 0.000036: 1.2122x slower
|
|
Avg: 0.000035 -> 0.000045: 1.2980x slower
|
|
Significant (t=-2.068415)
|
|
Stddev: 0.00007 -> 0.00009: 1.3543x larger (N = 500)
|
|
|
|
Running 'default_middleware' benchmark ...
|
|
Min: -0.000159 -> -0.000214: 0.7434x faster
|
|
Avg: 0.000001 -> 0.000001: 1.1672x faster
|
|
Not significant
|
|
Stddev: 0.00002 -> 0.00002: 1.1005x larger (N = 500)
|
|
|
|
Running 'query_annotate' benchmark ...
|
|
Min: 0.000204 -> 0.000198: 1.0298x faster
|
|
Avg: 0.000226 -> 0.000236: 1.0459x slower
|
|
Significant (t=-4.509109)
|
|
Stddev: 0.00003 -> 0.00004: 1.5714x larger (N = 500)
|
|
|
|
Running 'raw_sql' benchmark ...
|
|
Min: 0.000018 -> 0.000013: 1.3404x faster
|
|
Avg: 0.000019 -> 0.000015: 1.3195x faster
|
|
Significant (t=19.789629)
|
|
Stddev: 0.00000 -> 0.00000: 1.3561x smaller (N = 500)
|
|
|
|
Running 'url_resolve_flat' benchmark ...
|
|
Min: 0.055935 -> 0.053402: 1.0474x faster
|
|
Avg: 0.062895 -> 0.059771: 1.0523x faster
|
|
Significant (t=7.194834)
|
|
Stddev: 0.00723 -> 0.00648: 1.1147x smaller (N = 500)
|
|
|
|
Running 'l10n_render' benchmark ...
|
|
Min: 0.001529 -> 0.001251: 1.2219x faster
|
|
Avg: 0.001611 -> 0.001377: 1.1701x faster
|
|
Significant (t=18.793991)
|
|
Stddev: 0.00018 -> 0.00021: 1.1812x larger (N = 500)
|
|
|
|
Running 'query_count' benchmark ...
|
|
Min: 0.000205 -> 0.000190: 1.0786x faster
|
|
Avg: 0.000230 -> 0.000223: 1.0340x faster
|
|
Significant (t=3.666845)
|
|
Stddev: 0.00003 -> 0.00004: 1.3467x larger (N = 500)
|
|
|
|
Running 'model_delete' benchmark ...
|
|
Min: 0.000125 -> 0.000115: 1.0868x faster
|
|
Avg: 0.000146 -> 0.000135: 1.0808x faster
|
|
Significant (t=7.537652)
|
|
Stddev: 0.00003 -> 0.00002: 1.4769x smaller (N = 500)
|
|
|
|
Running 'query_iterator' benchmark ...
|
|
Min: 0.000110 -> 0.000097: 1.1344x faster
|
|
Avg: 0.000116 -> 0.000103: 1.1269x faster
|
|
Significant (t=19.477018)
|
|
Stddev: 0.00001 -> 0.00001: 1.0328x larger (N = 500)
|
|
|
|
Running 'template_compilation' benchmark ...
|
|
Min: 0.000157 -> 0.000157: 1.0038x faster
|
|
Avg: 0.000173 -> 0.000169: 1.0255x faster
|
|
Not significant
|
|
Stddev: 0.00008 -> 0.00008: 1.0180x smaller (N = 500)
|
|
|
|
Running 'query_all_multifield' benchmark ...
|
|
Min: 0.014928 -> 0.014535: 1.0270x faster
|
|
Avg: 0.017357 -> 0.016710: 1.0387x faster
|
|
Significant (t=3.854898)
|
|
Stddev: 0.00263 -> 0.00268: 1.0198x larger (N = 500)
|
|
|
|
Running 'query_prefetch_related' benchmark ...
|
|
Min: 0.014613 -> 0.013929: 1.0491x faster
|
|
Avg: 0.016610 -> 0.016188: 1.0261x faster
|
|
Significant (t=2.746974)
|
|
Stddev: 0.00236 -> 0.00250: 1.0569x larger (N = 500)
|
|
|
|
Running 'query_all_converters' benchmark ...
|
|
Min: 0.000525 -> 0.000493: 1.0659x faster
|
|
Avg: 0.000604 -> 0.000527: 1.1458x faster
|
|
Significant (t=24.506675)
|
|
Stddev: 0.00006 -> 0.00004: 1.7192x smaller (N = 500)
|
|
|
|
Running 'query_distinct' benchmark ...
|
|
Min: 0.000150 -> 0.000181: 1.2049x slower
|
|
Avg: 0.000159 -> 0.000231: 1.4503x slower
|
|
Significant (t=-31.080159)
|
|
Stddev: 0.00002 -> 0.00005: 3.0049x larger (N = 500)
|
|
|
|
Running 'query_dates' benchmark ...
|
|
Min: 0.000512 -> 0.000402: 1.2740x faster
|
|
Avg: 0.000677 -> 0.000541: 1.2510x faster
|
|
Significant (t=18.130874)
|
|
Stddev: 0.00014 -> 0.00009: 1.5731x smaller (N = 500)
|
|
|
|
Running 'model_save_existing' benchmark ...
|
|
Min: 0.004219 -> 0.003506: 1.2033x faster
|
|
Avg: 0.005591 -> 0.004282: 1.3058x faster
|
|
Significant (t=24.601648)
|
|
Stddev: 0.00105 -> 0.00056: 1.8802x smaller (N = 500)
|
|
|
|
Running 'query_delete_related' benchmark ...
|
|
Min: 0.000146 -> 0.000113: 1.2893x faster
|
|
Avg: 0.000164 -> 0.000125: 1.3116x faster
|
|
Significant (t=11.903195)
|
|
Stddev: 0.00006 -> 0.00004: 1.2887x smaller (N = 500)
|
|
|
|
Running 'url_reverse' benchmark ...
|
|
Min: 0.000083 -> 0.000051: 1.6336x faster
|
|
Avg: 0.000098 -> 0.000057: 1.7123x faster
|
|
Significant (t=9.922770)
|
|
Stddev: 0.00008 -> 0.00005: 1.5293x smaller (N = 500)
|
|
|
|
Running 'query_latest' benchmark ...
|
|
Min: 0.000171 -> 0.000149: 1.1500x faster
|
|
Avg: 0.000191 -> 0.000167: 1.1440x faster
|
|
Significant (t=9.636091)
|
|
Stddev: 0.00005 -> 0.00003: 1.6181x smaller (N = 500)
|
|
|
|
Running 'form_create' benchmark ...
|
|
Min: 0.000015 -> 0.000015: 1.0149x slower
|
|
Avg: 0.000018 -> 0.000018: 1.0134x faster
|
|
Not significant
|
|
Stddev: 0.00002 -> 0.00002: 1.0031x smaller (N = 500)
|
|
|
|
Running 'query_update' benchmark ...
|
|
Min: 0.000048 -> 0.000045: 1.0663x faster
|
|
Avg: 0.000052 -> 0.000048: 1.0711x faster
|
|
Significant (t=7.190354)
|
|
Stddev: 0.00001 -> 0.00001: 1.3463x larger (N = 500)
|
|
|
|
Running 'query_in_bulk' benchmark ...
|
|
Min: 0.000161 -> 0.000198: 1.2326x slower
|
|
Avg: 0.000176 -> 0.000269: 1.5247x slower
|
|
Significant (t=-26.624807)
|
|
Stddev: 0.00003 -> 0.00007: 2.2105x larger (N = 500)
|
|
|
|
Running 'url_resolve_nested' benchmark ...
|
|
Min: 0.000063 -> 0.000042: 1.4993x faster
|
|
Avg: 0.000082 -> 0.000061: 1.3509x faster
|
|
Not significant
|
|
Stddev: 0.00027 -> 0.00033: 1.2034x larger (N = 500)
|
|
|
|
Running 'model_creation' benchmark ...
|
|
Min: 0.000079 -> 0.000074: 1.0644x faster
|
|
Avg: 0.000089 -> 0.000087: 1.0230x faster
|
|
Not significant
|
|
Stddev: 0.00005 -> 0.00008: 1.4667x larger (N = 500)
|
|
|
|
Running 'query_order_by' benchmark ...
|
|
Min: 0.000179 -> 0.000162: 1.1071x faster
|
|
Avg: 0.000207 -> 0.000183: 1.1311x faster
|
|
Significant (t=9.116430)
|
|
Stddev: 0.00005 -> 0.00003: 1.6620x smaller (N = 500)
|
|
|
|
Running 'startup' benchmark ...
|
|
Skipped: Django 1.9 and later has changed app loading. This benchmark needs fixing anyway.
|
|
|
|
Running 'form_clean' benchmark ...
|
|
Min: 0.000005 -> 0.000004: 1.1374x faster
|
|
Avg: 0.000005 -> 0.000005: 1.1159x faster
|
|
Significant (t=3.486468)
|
|
Stddev: 0.00000 -> 0.00000: 1.1186x smaller (N = 500)
|
|
|
|
Running 'locale_from_request' benchmark ...
|
|
Min: 0.000126 -> 0.000117: 1.0788x faster
|
|
Avg: 0.000141 -> 0.000130: 1.0820x faster
|
|
Significant (t=2.168131)
|
|
Stddev: 0.00008 -> 0.00008: 1.0548x larger (N = 500)
|
|
|
|
Running 'query_exists' benchmark ...
|
|
Min: 0.000339 -> 0.000270: 1.2522x faster
|
|
Avg: 0.000390 -> 0.000302: 1.2915x faster
|
|
Significant (t=32.599092)
|
|
Stddev: 0.00005 -> 0.00003: 1.6766x smaller (N = 500)
|
|
|
|
Running 'query_values_10000' benchmark ...
|
|
Min: 0.007119 -> 0.005268: 1.3513x faster
|
|
Avg: 0.007891 -> 0.006276: 1.2573x faster
|
|
Significant (t=18.731021)
|
|
Stddev: 0.00120 -> 0.00151: 1.2516x larger (N = 500)
|
|
|
|
Running 'query_exclude' benchmark ...
|
|
Min: 0.000181 -> 0.000157: 1.1532x faster
|
|
Avg: 0.000222 -> 0.000173: 1.2822x faster
|
|
Significant (t=22.161234)
|
|
Stddev: 0.00005 -> 0.00002: 2.4379x smaller (N = 500)
|
|
|
|
Running 'query_raw' benchmark ...
|
|
Min: 0.006000 -> 0.005498: 1.0913x faster
|
|
Avg: 0.006669 -> 0.006219: 1.0723x faster
|
|
Significant (t=5.713937)
|
|
Stddev: 0.00118 -> 0.00130: 1.0984x larger (N = 500)
|
|
|
|
Running 'url_resolve' benchmark ...
|
|
Min: 0.005204 -> 0.004399: 1.1832x faster
|
|
Avg: 0.005764 -> 0.004764: 1.2099x faster
|
|
Significant (t=38.897887)
|
|
Stddev: 0.00055 -> 0.00018: 3.0723x smaller (N = 500)
|
|
|
|
Running 'model_save_new' benchmark ...
|
|
Min: 0.003674 -> 0.003351: 1.0967x faster
|
|
Avg: 0.003917 -> 0.003604: 1.0868x faster
|
|
Significant (t=21.508370)
|
|
Stddev: 0.00021 -> 0.00025: 1.2091x larger (N = 500)
|
|
|
|
Running 'query_all' benchmark ...
|
|
Min: 0.008655 -> 0.008097: 1.0689x faster
|
|
Avg: 0.010801 -> 0.009255: 1.1669x faster
|
|
Significant (t=8.961354)
|
|
Stddev: 0.00304 -> 0.00237: 1.2846x smaller (N = 500)
|
|
```
|
|
|
|
### Python 3.12.3 Dj4.2 vs Dj5.0
|
|
|
|
This benchmark is purely for development notes.
|
|
|
|
- Djangobench 0.10.0
|
|
- Python 3.12.3
|
|
- Django 4.2.13 vs Django 5.0.6
|
|
|
|
```bash
|
|
python3.8 -m venv py38
|
|
python3.11 -m venv py38
|
|
pip install -e git://github.com/django/djangobench.git#egg=djangobench
|
|
git clone https://github.com/django/django.git
|
|
cd django
|
|
|
|
ozira@METABOX:~/djangobench/django$ djangobench --control=4.2.13 --experiment=5.0.6 --control-python=/home/ozira/djangobench/py312/bin/python --experiment-python=/home/ozira/djangobench/py312/bin/python -r /home/ozira/djangobench/results -t 500
|
|
Running all benchmarks
|
|
Recording data to '/home/ozira/djangobench/results'
|
|
Control: Django 4.2.13 (in git branch 4.2.13)
|
|
Experiment: Django 5.0.6 (in git branch 5.0.6)
|
|
|
|
Running 'multi_value_dict' benchmark ...
|
|
Min: 0.000013 -> 0.000023: 1.7898x slower
|
|
Avg: 0.000159 -> 0.000314: 1.9720x slower
|
|
Significant (t=-18.448864)
|
|
Stddev: 0.00009 -> 0.00017: 1.8462x larger (N = 500)
|
|
|
|
Running 'query_values' benchmark ...
|
|
Min: 0.000086 -> 0.000093: 1.0836x slower
|
|
Avg: 0.000092 -> 0.000101: 1.1016x slower
|
|
Significant (t=-13.223024)
|
|
Stddev: 0.00001 -> 0.00001: 1.2472x larger (N = 500)
|
|
|
|
Running 'query_delete' benchmark ...
|
|
Min: 0.000098 -> 0.000085: 1.1525x faster
|
|
Avg: 0.000109 -> 0.000105: 1.0412x faster
|
|
Significant (t=3.610998)
|
|
Stddev: 0.00002 -> 0.00002: 1.2485x larger (N = 500)
|
|
|
|
Running 'query_select_related' benchmark ...
|
|
Min: 0.016080 -> 0.017390: 1.0815x slower
|
|
Avg: 0.018038 -> 0.020007: 1.1092x slower
|
|
Significant (t=-10.013539)
|
|
Stddev: 0.00204 -> 0.00390: 1.9094x larger (N = 500)
|
|
|
|
Running 'query_aggregate' benchmark ...
|
|
Min: 0.000195 -> 0.000186: 1.0503x faster
|
|
Avg: 0.000225 -> 0.000210: 1.0729x faster
|
|
Significant (t=6.534745)
|
|
Stddev: 0.00004 -> 0.00004: 1.0807x smaller (N = 500)
|
|
|
|
Running 'query_raw_deferred' benchmark ...
|
|
Min: 0.003904 -> 0.004196: 1.0748x slower
|
|
Avg: 0.004346 -> 0.004650: 1.0698x slower
|
|
Significant (t=-4.131647)
|
|
Stddev: 0.00113 -> 0.00119: 1.0537x larger (N = 500)
|
|
|
|
Running 'query_get_or_create' benchmark ...
|
|
Min: 0.000447 -> 0.000482: 1.0795x slower
|
|
Avg: 0.000546 -> 0.000559: 1.0244x slower
|
|
Not significant
|
|
Stddev: 0.00012 -> 0.00010: 1.1415x smaller (N = 500)
|
|
|
|
Running 'query_values_list' benchmark ...
|
|
Min: 0.000082 -> 0.000085: 1.0385x slower
|
|
Avg: 0.000089 -> 0.000093: 1.0418x slower
|
|
Significant (t=-4.441191)
|
|
Stddev: 0.00001 -> 0.00002: 1.5940x larger (N = 500)
|
|
|
|
Running 'url_resolve_flat_i18n_off' benchmark ...
|
|
Min: 0.054035 -> 0.054465: 1.0079x slower
|
|
Avg: 0.062802 -> 0.058801: 1.0680x faster
|
|
Significant (t=4.849003)
|
|
Stddev: 0.01815 -> 0.00330: 5.4996x smaller (N = 500)
|
|
|
|
Running 'qs_filter_chaining' benchmark ...
|
|
Min: 0.000242 -> 0.000301: 1.2454x slower
|
|
Avg: 0.000255 -> 0.000320: 1.2553x slower
|
|
Significant (t=-19.514075)
|
|
Stddev: 0.00004 -> 0.00006: 1.3907x larger (N = 500)
|
|
|
|
Running 'template_render' benchmark ...
|
|
Min: 0.000849 -> 0.000823: 1.0308x faster
|
|
Avg: 0.000985 -> 0.000914: 1.0773x faster
|
|
Significant (t=2.995514)
|
|
Stddev: 0.00036 -> 0.00038: 1.0474x larger (N = 500)
|
|
|
|
Running 'query_get' benchmark ...
|
|
Min: 0.000283 -> 0.000272: 1.0390x faster
|
|
Avg: 0.000325 -> 0.000304: 1.0704x faster
|
|
Significant (t=10.235216)
|
|
Stddev: 0.00004 -> 0.00003: 1.3055x smaller (N = 500)
|
|
|
|
Running 'query_none' benchmark ...
|
|
Min: 0.000069 -> 0.000093: 1.3482x slower
|
|
Avg: 0.000081 -> 0.000103: 1.2714x slower
|
|
Significant (t=-3.771605)
|
|
Stddev: 0.00011 -> 0.00008: 1.3869x smaller (N = 500)
|
|
|
|
Running 'query_complex_filter' benchmark ...
|
|
Min: 0.000048 -> 0.000039: 1.2131x faster
|
|
Avg: 0.000051 -> 0.000042: 1.2180x faster
|
|
Significant (t=23.139363)
|
|
Stddev: 0.00001 -> 0.00001: 1.1332x smaller (N = 500)
|
|
|
|
Running 'query_filter' benchmark ...
|
|
Min: 0.000143 -> 0.000195: 1.3597x slower
|
|
Avg: 0.000162 -> 0.000218: 1.3425x slower
|
|
Significant (t=-15.508875)
|
|
Stddev: 0.00007 -> 0.00003: 2.6056x smaller (N = 500)
|
|
|
|
Running 'template_render_simple' benchmark ...
|
|
Min: 0.000042 -> 0.000029: 1.4210x faster
|
|
Avg: 0.000052 -> 0.000036: 1.4621x faster
|
|
Significant (t=2.949575)
|
|
Stddev: 0.00010 -> 0.00007: 1.3581x smaller (N = 500)
|
|
|
|
Running 'default_middleware' benchmark ...
|
|
Min: -0.000154 -> -0.000074: 0.4827x slower
|
|
Avg: 0.000002 -> 0.000002: 1.5375x slower
|
|
Not significant
|
|
Stddev: 0.00003 -> 0.00003: 1.0173x smaller (N = 500)
|
|
|
|
Running 'query_annotate' benchmark ...
|
|
Min: 0.000200 -> 0.000204: 1.0182x slower
|
|
Avg: 0.000230 -> 0.000245: 1.0629x slower
|
|
Significant (t=-7.240006)
|
|
Stddev: 0.00003 -> 0.00003: 1.0010x larger (N = 500)
|
|
|
|
Running 'raw_sql' benchmark ...
|
|
Min: 0.000013 -> 0.000015: 1.1728x slower
|
|
Avg: 0.000014 -> 0.000016: 1.1890x slower
|
|
Significant (t=-9.630569)
|
|
Stddev: 0.00000 -> 0.00000: 1.3213x larger (N = 500)
|
|
|
|
Running 'url_resolve_flat' benchmark ...
|
|
Min: 0.054495 -> 0.053987: 1.0094x faster
|
|
Avg: 0.059588 -> 0.059220: 1.0062x faster
|
|
Not significant
|
|
Stddev: 0.00520 -> 0.00563: 1.0816x larger (N = 500)
|
|
|
|
Running 'l10n_render' benchmark ...
|
|
Min: 0.001263 -> 0.000914: 1.3821x faster
|
|
Avg: 0.001386 -> 0.001024: 1.3533x faster
|
|
Significant (t=29.074072)
|
|
Stddev: 0.00020 -> 0.00020: 1.0040x smaller (N = 500)
|
|
|
|
Running 'query_count' benchmark ...
|
|
Min: 0.000178 -> 0.000186: 1.0407x slower
|
|
Avg: 0.000196 -> 0.000203: 1.0335x slower
|
|
Significant (t=-2.855455)
|
|
Stddev: 0.00005 -> 0.00002: 1.9799x smaller (N = 500)
|
|
|
|
Running 'model_delete' benchmark ...
|
|
Min: 0.000124 -> 0.000109: 1.1351x faster
|
|
Avg: 0.000144 -> 0.000125: 1.1548x faster
|
|
Significant (t=15.819525)
|
|
Stddev: 0.00002 -> 0.00002: 1.3262x smaller (N = 500)
|
|
|
|
Running 'query_iterator' benchmark ...
|
|
Min: 0.000099 -> 0.000117: 1.1885x slower
|
|
Avg: 0.000104 -> 0.000126: 1.2099x slower
|
|
Significant (t=-28.698598)
|
|
Stddev: 0.00001 -> 0.00001: 1.3498x larger (N = 500)
|
|
|
|
Running 'template_compilation' benchmark ...
|
|
Min: 0.000150 -> 0.000153: 1.0177x slower
|
|
Avg: 0.000162 -> 0.000165: 1.0142x slower
|
|
Not significant
|
|
Stddev: 0.00009 -> 0.00008: 1.0964x smaller (N = 500)
|
|
|
|
Running 'query_all_multifield' benchmark ...
|
|
Min: 0.015027 -> 0.015956: 1.0618x slower
|
|
Avg: 0.016603 -> 0.017869: 1.0763x slower
|
|
Significant (t=-7.678978)
|
|
Stddev: 0.00252 -> 0.00269: 1.0650x larger (N = 500)
|
|
|
|
Running 'query_prefetch_related' benchmark ...
|
|
Min: 0.014046 -> 0.013922: 1.0089x faster
|
|
Avg: 0.015939 -> 0.016489: 1.0346x slower
|
|
Significant (t=-3.883798)
|
|
Stddev: 0.00227 -> 0.00221: 1.0253x smaller (N = 500)
|
|
|
|
Running 'query_all_converters' benchmark ...
|
|
Min: 0.000544 -> 0.000523: 1.0396x faster
|
|
Avg: 0.000598 -> 0.000560: 1.0685x faster
|
|
Significant (t=16.329893)
|
|
Stddev: 0.00004 -> 0.00004: 1.0470x larger (N = 500)
|
|
|
|
Running 'query_distinct' benchmark ...
|
|
Min: 0.000103 -> 0.000109: 1.0592x slower
|
|
Avg: 0.000112 -> 0.000116: 1.0375x slower
|
|
Significant (t=-5.586589)
|
|
Stddev: 0.00001 -> 0.00001: 1.0100x smaller (N = 500)
|
|
|
|
Running 'query_dates' benchmark ...
|
|
Min: 0.000356 -> 0.000405: 1.1369x slower
|
|
Avg: 0.000403 -> 0.000460: 1.1406x slower
|
|
Significant (t=-19.572384)
|
|
Stddev: 0.00004 -> 0.00005: 1.1089x larger (N = 500)
|
|
|
|
Running 'model_save_existing' benchmark ...
|
|
Min: 0.003422 -> 0.003479: 1.0166x slower
|
|
Avg: 0.003788 -> 0.003807: 1.0049x slower
|
|
Not significant
|
|
Stddev: 0.00021 -> 0.00017: 1.2258x smaller (N = 500)
|
|
|
|
Running 'query_delete_related' benchmark ...
|
|
Min: 0.000114 -> 0.000113: 1.0052x faster
|
|
Avg: 0.000127 -> 0.000130: 1.0189x slower
|
|
Not significant
|
|
Stddev: 0.00005 -> 0.00005: 1.0220x smaller (N = 500)
|
|
|
|
Running 'url_reverse' benchmark ...
|
|
Min: 0.000048 -> 0.000050: 1.0329x slower
|
|
Avg: 0.000055 -> 0.000063: 1.1449x slower
|
|
Significant (t=-2.155616)
|
|
Stddev: 0.00005 -> 0.00007: 1.3065x larger (N = 500)
|
|
|
|
Running 'query_latest' benchmark ...
|
|
Min: 0.000139 -> 0.000143: 1.0305x slower
|
|
Avg: 0.000153 -> 0.000157: 1.0231x slower
|
|
Significant (t=-2.436627)
|
|
Stddev: 0.00002 -> 0.00002: 1.1560x larger (N = 500)
|
|
|
|
Running 'form_create' benchmark ...
|
|
Min: 0.000014 -> 0.000013: 1.0312x faster
|
|
Avg: 0.000016 -> 0.000015: 1.0981x faster
|
|
Not significant
|
|
Stddev: 0.00002 -> 0.00002: 1.1374x larger (N = 500)
|
|
|
|
Running 'query_update' benchmark ...
|
|
Min: 0.000044 -> 0.000045: 1.0237x slower
|
|
Avg: 0.000047 -> 0.000049: 1.0507x slower
|
|
Significant (t=-5.285934)
|
|
Stddev: 0.00001 -> 0.00001: 1.7229x larger (N = 500)
|
|
|
|
Running 'query_in_bulk' benchmark ...
|
|
Min: 0.000164 -> 0.000147: 1.1136x faster
|
|
Avg: 0.000191 -> 0.000166: 1.1519x faster
|
|
Significant (t=17.531877)
|
|
Stddev: 0.00003 -> 0.00002: 1.4907x smaller (N = 500)
|
|
|
|
Running 'url_resolve_nested' benchmark ...
|
|
Min: 0.000047 -> 0.000039: 1.2059x faster
|
|
Avg: 0.000066 -> 0.000053: 1.2379x faster
|
|
Not significant
|
|
Stddev: 0.00035 -> 0.00027: 1.3017x smaller (N = 500)
|
|
|
|
Running 'model_creation' benchmark ...
|
|
Min: 0.000071 -> 0.000075: 1.0607x slower
|
|
Avg: 0.000080 -> 0.000085: 1.0648x slower
|
|
Not significant
|
|
Stddev: 0.00007 -> 0.00004: 1.6986x smaller (N = 500)
|
|
|
|
Running 'query_order_by' benchmark ...
|
|
Min: 0.000144 -> 0.000159: 1.1010x slower
|
|
Avg: 0.000160 -> 0.000176: 1.1021x slower
|
|
Significant (t=-8.959905)
|
|
Stddev: 0.00003 -> 0.00003: 1.0795x larger (N = 500)
|
|
|
|
Running 'startup' benchmark ...
|
|
Skipped: Django 1.9 and later has changed app loading. This benchmark needs fixing anyway.
|
|
|
|
Running 'form_clean' benchmark ...
|
|
Min: 0.000004 -> 0.000004: 1.0084x slower
|
|
Avg: 0.000004 -> 0.000004: 1.0378x faster
|
|
Not significant
|
|
Stddev: 0.00000 -> 0.00000: 1.6388x smaller (N = 500)
|
|
|
|
Running 'locale_from_request' benchmark ...
|
|
Min: 0.000112 -> 0.000107: 1.0460x faster
|
|
Avg: 0.000119 -> 0.000115: 1.0323x faster
|
|
Not significant
|
|
Stddev: 0.00007 -> 0.00006: 1.0659x smaller (N = 500)
|
|
|
|
Running 'query_exists' benchmark ...
|
|
Min: 0.000281 -> 0.000273: 1.0274x faster
|
|
Avg: 0.000327 -> 0.000304: 1.0761x faster
|
|
Significant (t=8.912446)
|
|
Stddev: 0.00005 -> 0.00003: 1.4371x smaller (N = 500)
|
|
|
|
Running 'query_values_10000' benchmark ...
|
|
Min: 0.005139 -> 0.005398: 1.0505x slower
|
|
Avg: 0.005799 -> 0.005876: 1.0133x slower
|
|
Not significant
|
|
Stddev: 0.00117 -> 0.00113: 1.0364x smaller (N = 500)
|
|
|
|
Running 'query_exclude' benchmark ...
|
|
Min: 0.000161 -> 0.000160: 1.0074x faster
|
|
Avg: 0.000177 -> 0.000174: 1.0209x faster
|
|
Significant (t=3.498767)
|
|
Stddev: 0.00002 -> 0.00002: 1.0594x smaller (N = 500)
|
|
|
|
Running 'query_raw' benchmark ...
|
|
Min: 0.005483 -> 0.005660: 1.0323x slower
|
|
Avg: 0.006040 -> 0.006549: 1.0843x slower
|
|
Significant (t=-6.551792)
|
|
Stddev: 0.00110 -> 0.00134: 1.2183x larger (N = 500)
|
|
|
|
Running 'url_resolve' benchmark ...
|
|
Min: 0.004650 -> 0.004575: 1.0164x faster
|
|
Avg: 0.005069 -> 0.004889: 1.0370x faster
|
|
Significant (t=7.516165)
|
|
Stddev: 0.00044 -> 0.00030: 1.4556x smaller (N = 500)
|
|
|
|
Running 'model_save_new' benchmark ...
|
|
Min: 0.003318 -> 0.003369: 1.0154x slower
|
|
Avg: 0.003624 -> 0.003783: 1.0437x slower
|
|
Significant (t=-9.047954)
|
|
Stddev: 0.00026 -> 0.00029: 1.1087x larger (N = 500)
|
|
|
|
Running 'query_all' benchmark ...
|
|
Min: 0.007900 -> 0.008847: 1.1198x slower
|
|
Avg: 0.008945 -> 0.010023: 1.1206x slower
|
|
Significant (t=-7.386401)
|
|
Stddev: 0.00224 -> 0.00237: 1.0590x larger (N = 500)
|
|
```
|