{"id":830,"date":"2023-10-16T18:03:23","date_gmt":"2023-10-16T16:03:23","guid":{"rendered":"https:\/\/lewoniewski.info\/blog\/?p=830"},"modified":"2023-10-18T19:04:34","modified_gmt":"2023-10-18T17:04:34","slug":"python-3-11-kontra-python-3-12-test-wydajnosci","status":"publish","type":"post","link":"https:\/\/lewoniewski.info\/blog\/2023\/python-3-11-kontra-python-3-12-test-wydajnosci\/","title":{"rendered":"Python 3.11 kontra Python 3.12 \u2013 test wydajno\u015bci"},"content":{"rendered":"<p>W ramach tego artyku\u0142u zosta\u0142y opisane wyniki test\u00f3w wydajno\u015bciowych dla Pythona 3.12 w por\u00f3wnaniu z Pythonem 3.11. W sumie zosta\u0142o przeprowadzono 91 r\u00f3\u017cnych test\u00f3w por\u00f3wnawczych na komputerach z procesorem serii AMD Ryzen 7000 oraz procesorem Intel Core 13. generacji. Jeden z nich u\u017cywany jest w komputerach stacjonarnych, drugi &#8211; w laptopach lub komputerach mini PC.<!--more--><\/p>\n<p>Wszystkie testy zosta\u0142y przeprowadzone na komputerach z systemem Windows 11 przy u\u017cyciu biblioteki <a href=\"https:\/\/pypi.org\/project\/pyperformance\/\" rel=\"noopener\" target=\"_blank\">pyperformance 1.0.9<\/a> w <a href=\"https:\/\/www.python.org\/downloads\/release\/python-3116\/\" rel=\"noopener\" target=\"_blank\">Pythonie 3.11.6<\/a> oraz <a href=\"https:\/\/www.python.org\/downloads\/release\/python-3120\/\" rel=\"noopener\" target=\"_blank\">Pythonie 3.12.0<\/a> (obie wersje 64-bitowe).<\/p>\n<style>.benchtab {width:100%} .ben1b {background-color: #e0e8ff !important;} .ben1 {color:blue;} .ben1s {color:blue;font-weight:bold;} .ben2b {background-color: #ffe0e0 !important;} .ben2 {color:red;} .ben2s {color:red;font-weight:bold;} .benchtab .nameben{text-align:left;} .benchtab .wartn{text-align:right;}<\/style>\n<h2>Procesor AMD Ryzen z serii 7000 do komputer\u00f3w stacjonarnych<\/h2>\n<p>Pierwsza cz\u0119\u015b\u0107 test\u00f3w obejmowa\u0142a komputer stacjonarny z procesorem AMD Ryzen 9 7900, pami\u0119ci\u0105 RAM DDR5 i dyskiem M.2 PCIe Gen4 NVMe. Poni\u017csza tabela przedstawia wyniki 91 test\u00f3w przeprowadzonych przy u\u017cyciu Pythona 3.11 (jako punktu odniesienia) i Pythona 3.12 na tym urz\u0105dzeniu.<\/p>\n<table class=\"benchtab\">\n<tr>\n<th style=\"text-align:left;\">Nazwa testu<\/th>\n<th style=\"text-align:right;\">Python 3.11<\/th>\n<th style=\"text-align:right;\">Python 3.12<\/th>\n<\/tr>\n<tr>\n<td class=\"nameben\">2to3<\/td>\n<td class=\"wartn\">191 ms<\/td>\n<td class=\"wartn\">202 ms (<span class=\"ben2\">1.06x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_generators<\/td>\n<td class=\"wartn\">198 ms<\/td>\n<td class=\"wartn\">268 ms (<span class=\"ben2s\">1.35x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_cpu_io_mixed<\/td>\n<td class=\"wartn\">580 ms<\/td>\n<td class=\"wartn\">516 ms (<span class=\"ben1s\">1.12x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_cpu_io_mixed_tg<\/td>\n<td class=\"wartn\">521 ms<\/td>\n<td class=\"wartn\">512 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_io<\/td>\n<td class=\"wartn\">949 ms<\/td>\n<td class=\"wartn\">864 ms (<span class=\"ben1s\">1.10x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_io_tg<\/td>\n<td class=\"wartn\">930 ms<\/td>\n<td class=\"wartn\">892 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_memoization<\/td>\n<td class=\"wartn\">420 ms<\/td>\n<td class=\"wartn\">386 ms (<span class=\"ben1\">1.09x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_memoization_tg<\/td>\n<td class=\"wartn\">394 ms<\/td>\n<td class=\"wartn\">378 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_none<\/td>\n<td class=\"wartn\">340 ms<\/td>\n<td class=\"wartn\">316 ms (<span class=\"ben1\">1.07x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_none_tg<\/td>\n<td class=\"wartn\">300 ms<\/td>\n<td class=\"wartn\">292 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio_tcp<\/td>\n<td class=\"wartn\">708 ms<\/td>\n<td class=\"wartn\">476 ms (<span class=\"ben1s\">1.49x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio_tcp_ssl<\/td>\n<td class=\"wartn\">2.02 sec<\/td>\n<td class=\"wartn\">1.90 sec (<span class=\"ben1\">1.07x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">bench_mp_pool<\/td>\n<td class=\"wartn\">54.9 ms<\/td>\n<td class=\"wartn\">63.8 ms (<span class=\"ben2s\">1.16x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">bench_thread_pool<\/td>\n<td class=\"wartn\">687 us<\/td>\n<td class=\"wartn\">694 us (<span class=\"ben2\">1.01x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">chameleon<\/td>\n<td class=\"wartn\">5.23 ms<\/td>\n<td class=\"wartn\">5.25 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">chaos<\/td>\n<td class=\"wartn\">45.7 ms<\/td>\n<td class=\"wartn\">45.5 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">comprehensions<\/td>\n<td class=\"wartn\">14.4 us<\/td>\n<td class=\"wartn\">14.3 us (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">coroutines<\/td>\n<td class=\"wartn\">16.9 ms<\/td>\n<td class=\"wartn\">16.9 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">coverage<\/td>\n<td class=\"wartn\">141 ms<\/td>\n<td class=\"wartn\">239 ms (<span class=\"ben2s\">1.69x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">create_gc_cycles<\/td>\n<td class=\"wartn\">521 us<\/td>\n<td class=\"wartn\">537 us (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">crypto_pyaes<\/td>\n<td class=\"wartn\">48.3 ms<\/td>\n<td class=\"wartn\">49.6 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">dask<\/td>\n<td class=\"wartn\">235 ms<\/td>\n<td class=\"wartn\">241 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy<\/td>\n<td class=\"wartn\">225 us<\/td>\n<td class=\"wartn\">229 us (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy_memo<\/td>\n<td class=\"wartn\">25.1 us<\/td>\n<td class=\"wartn\">26.1 us (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy_reduce<\/td>\n<td class=\"wartn\">2.02 us<\/td>\n<td class=\"wartn\">2.11 us (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deltablue<\/td>\n<td class=\"wartn\">2.63 ms<\/td>\n<td class=\"wartn\">2.48 ms (<span class=\"ben1\">1.06x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">django_template<\/td>\n<td class=\"wartn\">23.0 ms<\/td>\n<td class=\"wartn\">23.4 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">docutils<\/td>\n<td class=\"wartn\">1.39 sec<\/td>\n<td class=\"wartn\">1.46 sec (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">fannkuch<\/td>\n<td class=\"wartn\">240 ms<\/td>\n<td class=\"wartn\">254 ms (<span class=\"ben2\">1.06x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">float<\/td>\n<td class=\"wartn\">53.5 ms<\/td>\n<td class=\"wartn\">59.6 ms (<span class=\"ben2s\">1.11x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">gc_traversal<\/td>\n<td class=\"wartn\">1.25 ms<\/td>\n<td class=\"wartn\">1.26 ms (<span class=\"ben2\">1.01x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">generators<\/td>\n<td class=\"wartn\">41.0 ms<\/td>\n<td class=\"wartn\">26.6 ms (<span class=\"ben1s\">1.55x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">genshi_text<\/td>\n<td class=\"wartn\">16.6 ms<\/td>\n<td class=\"wartn\">16.2 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">genshi_xml<\/td>\n<td class=\"wartn\">95.9 ms<\/td>\n<td class=\"wartn\">97.9 ms (<span class=\"ben2\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">hexiom<\/td>\n<td class=\"wartn\">4.39 ms<\/td>\n<td class=\"wartn\">4.57 ms (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">html5lib<\/td>\n<td class=\"wartn\">31.2 ms<\/td>\n<td class=\"wartn\">33.3 ms (<span class=\"ben2\">1.07x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">json_dumps<\/td>\n<td class=\"wartn\">7.72 ms<\/td>\n<td class=\"wartn\">5.77 ms (<span class=\"ben1s\">1.34x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">json_loads<\/td>\n<td class=\"wartn\">12.7 us<\/td>\n<td class=\"wartn\">13.5 us (<span class=\"ben2\">1.06x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_format<\/td>\n<td class=\"wartn\">6.35 us<\/td>\n<td class=\"wartn\">6.62 us (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_silent<\/td>\n<td class=\"wartn\">71.6 ns<\/td>\n<td class=\"wartn\">70.5 ns (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_simple<\/td>\n<td class=\"wartn\">6.00 us<\/td>\n<td class=\"wartn\">6.24 us (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">mako<\/td>\n<td class=\"wartn\">7.49 ms<\/td>\n<td class=\"wartn\">7.76 ms (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">mdp<\/td>\n<td class=\"wartn\">1.62 sec<\/td>\n<td class=\"wartn\">1.62 sec (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">meteor_contest<\/td>\n<td class=\"wartn\">65.9 ms<\/td>\n<td class=\"wartn\">67.4 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">nbody<\/td>\n<td class=\"wartn\">73.6 ms<\/td>\n<td class=\"wartn\">87.0 ms (<span class=\"ben2s\">1.18x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">nqueens<\/td>\n<td class=\"wartn\">60.3 ms<\/td>\n<td class=\"wartn\">61.7 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pathlib<\/td>\n<td class=\"wartn\">79.9 ms<\/td>\n<td class=\"wartn\">91.9 ms (<span class=\"ben2s\">1.15x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle<\/td>\n<td class=\"wartn\">6.66 us<\/td>\n<td class=\"wartn\">7.11 us (<span class=\"ben2\">1.07x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_dict<\/td>\n<td class=\"wartn\">18.3 us<\/td>\n<td class=\"wartn\">18.9 us (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_list<\/td>\n<td class=\"wartn\">2.59 us<\/td>\n<td class=\"wartn\">2.73 us (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_pure_python<\/td>\n<td class=\"wartn\">191 us<\/td>\n<td class=\"wartn\">198 us (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pidigits<\/td>\n<td class=\"wartn\">136 ms<\/td>\n<td class=\"wartn\">138 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pprint_pformat<\/td>\n<td class=\"wartn\">983 ms<\/td>\n<td class=\"wartn\">1.03 sec (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pprint_safe_repr<\/td>\n<td class=\"wartn\">479 ms<\/td>\n<td class=\"wartn\">506 ms (<span class=\"ben2\">1.06x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pyflate<\/td>\n<td class=\"wartn\">293 ms<\/td>\n<td class=\"wartn\">315 ms (<span class=\"ben2\">1.07x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">python_startup<\/td>\n<td class=\"wartn\">15.2 ms<\/td>\n<td class=\"wartn\">15.6 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">python_startup_no_site<\/td>\n<td class=\"wartn\">12.5 ms<\/td>\n<td class=\"wartn\">13.1 ms (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">raytrace<\/td>\n<td class=\"wartn\">204 ms<\/td>\n<td class=\"wartn\">210 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_compile<\/td>\n<td class=\"wartn\">77.1 ms<\/td>\n<td class=\"wartn\">83.1 ms (<span class=\"ben2\">1.08x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_dna<\/td>\n<td class=\"wartn\">103 ms<\/td>\n<td class=\"wartn\">103 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_effbot<\/td>\n<td class=\"wartn\">1.64 ms<\/td>\n<td class=\"wartn\">1.74 ms (<span class=\"ben2\">1.06x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_v8<\/td>\n<td class=\"wartn\">14.7 ms<\/td>\n<td class=\"wartn\">14.4 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">richards<\/td>\n<td class=\"wartn\">29.8 ms<\/td>\n<td class=\"wartn\">31.2 ms (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">richards_super<\/td>\n<td class=\"wartn\">37.0 ms<\/td>\n<td class=\"wartn\">34.6 ms (<span class=\"ben1\">1.07x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_fft<\/td>\n<td class=\"wartn\">214 ms<\/td>\n<td class=\"wartn\">220 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_lu<\/td>\n<td class=\"wartn\">68.7 ms<\/td>\n<td class=\"wartn\">75.3 ms (<span class=\"ben2s\">1.10x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_monte_carlo<\/td>\n<td class=\"wartn\">44.2 ms<\/td>\n<td class=\"wartn\">48.3 ms (<span class=\"ben2\">1.09x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_sor<\/td>\n<td class=\"wartn\">80.4 ms<\/td>\n<td class=\"wartn\">91.7 ms (<span class=\"ben2s\">1.14x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_sparse_mat_mult<\/td>\n<td class=\"wartn\">3.29 ms<\/td>\n<td class=\"wartn\">3.32 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">spectral_norm<\/td>\n<td class=\"wartn\">75.7 ms<\/td>\n<td class=\"wartn\">84.7 ms (<span class=\"ben2s\">1.12x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_normalize<\/td>\n<td class=\"wartn\">178 ms<\/td>\n<td class=\"wartn\">186 ms (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_optimize<\/td>\n<td class=\"wartn\">32.3 ms<\/td>\n<td class=\"wartn\">33.9 ms (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_parse<\/td>\n<td class=\"wartn\">891 us<\/td>\n<td class=\"wartn\">861 us (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_transpile<\/td>\n<td class=\"wartn\">1.06 ms<\/td>\n<td class=\"wartn\">1.05 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlite_synth<\/td>\n<td class=\"wartn\">1.41 us<\/td>\n<td class=\"wartn\">1.49 us (<span class=\"ben2\">1.06x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_expand<\/td>\n<td class=\"wartn\">248 ms<\/td>\n<td class=\"wartn\">247 ms (<span class=\"ben1\">1.00x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_integrate<\/td>\n<td class=\"wartn\">11.8 ms<\/td>\n<td class=\"wartn\">11.8 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_str<\/td>\n<td class=\"wartn\">152 ms<\/td>\n<td class=\"wartn\">154 ms (<span class=\"ben2\">1.01x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_sum<\/td>\n<td class=\"wartn\">86.4 ms<\/td>\n<td class=\"wartn\">83.3 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">telco<\/td>\n<td class=\"wartn\">3.91 ms<\/td>\n<td class=\"wartn\">4.26 ms (<span class=\"ben2\">1.09x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">tomli_loads<\/td>\n<td class=\"wartn\">1.46 sec<\/td>\n<td class=\"wartn\">1.53 sec (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">tornado_http<\/td>\n<td class=\"wartn\">86.9 ms<\/td>\n<td class=\"wartn\">86.2 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">typing_runtime_protocols<\/td>\n<td class=\"wartn\">307 us<\/td>\n<td class=\"wartn\">102 us (<span class=\"ben1s\">2.99x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpack_sequence<\/td>\n<td class=\"wartn\">35.1 ns<\/td>\n<td class=\"wartn\">53.4 ns (<span class=\"ben2s\">1.52x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle<\/td>\n<td class=\"wartn\">8.13 us<\/td>\n<td class=\"wartn\">8.54 us (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle_list<\/td>\n<td class=\"wartn\">2.86 us<\/td>\n<td class=\"wartn\">2.80 us (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle_pure_python<\/td>\n<td class=\"wartn\">150 us<\/td>\n<td class=\"wartn\">149 us (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_generate<\/td>\n<td class=\"wartn\">53.6 ms<\/td>\n<td class=\"wartn\">60.4 ms (<span class=\"ben2s\">1.13x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_iterparse<\/td>\n<td class=\"wartn\">60.0 ms<\/td>\n<td class=\"wartn\">59.1 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_parse<\/td>\n<td class=\"wartn\">82.3 ms<\/td>\n<td class=\"wartn\">78.4 ms (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_process<\/td>\n<td class=\"wartn\">38.4 ms<\/td>\n<td class=\"wartn\">42.3 ms (<span class=\"ben2s\">1.10x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\"><strong>Wynik (\u015brednia geometryczna)<\/strong><\/td>\n<td class=\"wartn\"><\/td>\n<td class=\"wartn ben2b\"><span class=\"ben2\">1.01x wolniej<\/span><\/td>\n<\/tr>\n<\/table>\n<p>Przeprowadzona analiza wskazuje na to, \u017ce Python 3.12 ma najlepsze wyniki wydajno\u015bciowe w por\u00f3wnaniu do Pythona 3.11 w nast\u0119puj\u0105cych testach: <strong>typing_runtime_protocols<\/strong> (<span class=\"ben1s\">2.99x szybciej<\/span>), <strong>generators<\/strong> (<span class=\"ben1s\">1.55x szybciej<\/span>), <strong>asyncio_tcp<\/strong> (<span class=\"ben1s\">1.49x szybciej<\/span>). Mo\u017cna jednak zauwa\u017cy\u0107 spadek wydajno\u015bci w niekt\u00f3rych testach, szczeg\u00f3lnie w <strong>coverage<\/strong> (<span class=\"ben2s\">1.69x wolniej<\/span>), <strong>unpack_sequence<\/strong> (<span class=\"ben2s\">1.52x wolniej<\/span>), <strong>async_generators<\/strong> (<span class=\"ben2s\">1.35x wolniej<\/span>).<\/p>\n<p>Dodatkowo mo\u017cna sprawdzi\u0107 r\u00f3\u017cnice w wydajno\u015bci pomi\u0119dzy Pythonem 3.12 i Pythonem 3.11 w oparciu o testy nale\u017c\u0105ce do okre\u015blonych grup. Poni\u017csza tabela przedstawia \u015bredni\u0105 geometryczn\u0105 dla test\u00f3w por\u00f3wnawczych w ramach poszczeg\u00f3lnych grup dla Pythona 3.12 w por\u00f3wnaniu z Pythonem 3.11.<\/p>\n<table class=\"benchtab\">\n<tr>\n<th style=\"text-align:left;\">Grupa test\u00f3w<\/th>\n<th style=\"text-align:right;\">Python 3.12 w por\u00f3wnaniu do Pythona 3.11<\/th>\n<\/tr>\n<tr>\n<td class=\"nameben\">apps<\/td>\n<td class=\"wartn\"><span class=\"ben2\">1.03x wolniej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.06x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">math<\/td>\n<td class=\"wartn\"><span class=\"ben2s\">1.10x wolniej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex<\/td>\n<td class=\"wartn\"><span class=\"ben2\">1.03x wolniej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">serialize<\/td>\n<td class=\"wartn\"><span class=\"ben2\">1.01x wolniej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">startup<\/td>\n<td class=\"wartn\"><span class=\"ben2\">1.03x wolniej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">template<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.00x szybciej<\/span><\/td>\n<\/tr>\n<\/table>\n<h2>Procesor Intel Core 13. generacji dla urz\u0105dze\u0144 mobilnych<\/h2>\n<p>Druga cz\u0119\u015b\u0107 test\u00f3w obejmowa\u0142a komputer mini PC z procesorem Intel Core i3-1315U (kt\u00f3ry jest r\u00f3wnie\u017c u\u017cywany w laptopach), pami\u0119ci\u0105 RAM DDR4 i dyskiem M.2 PCIe Gen4 NVMe. Poni\u017csza tabela przedstawia wyniki 91 test\u00f3w przeprowadzonych przy u\u017cyciu Pythona 3.11 (jako punktu odniesienia) i Pythona 3.12 na tym urz\u0105dzeniu.<\/p>\n<table class=\"benchtab\">\n<tr>\n<th style=\"text-align:left;\">Nazwa testu<\/th>\n<th style=\"text-align:right;\">Python 3.11<\/th>\n<th style=\"text-align:right;\">Python 3.12<\/th>\n<\/tr>\n<tr>\n<td class=\"nameben\">2to3<\/td>\n<td class=\"wartn\">250 ms<\/td>\n<td class=\"wartn\">256 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_generators<\/td>\n<td class=\"wartn\">208 ms<\/td>\n<td class=\"wartn\">269 ms (<span class=\"ben2s\">1.29x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_cpu_io_mixed<\/td>\n<td class=\"wartn\">615 ms<\/td>\n<td class=\"wartn\">558 ms (<span class=\"ben1s\">1.10x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_cpu_io_mixed_tg<\/td>\n<td class=\"wartn\">566 ms<\/td>\n<td class=\"wartn\">562 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_io<\/td>\n<td class=\"wartn\">864 ms<\/td>\n<td class=\"wartn\">793 ms (<span class=\"ben1\">1.09x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_io_tg<\/td>\n<td class=\"wartn\">859 ms<\/td>\n<td class=\"wartn\">805 ms (<span class=\"ben1\">1.07x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_memoization<\/td>\n<td class=\"wartn\">463 ms<\/td>\n<td class=\"wartn\">404 ms (<span class=\"ben1s\">1.15x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_memoization_tg<\/td>\n<td class=\"wartn\">432 ms<\/td>\n<td class=\"wartn\">415 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_none<\/td>\n<td class=\"wartn\">373 ms<\/td>\n<td class=\"wartn\">334 ms (<span class=\"ben1s\">1.12x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_none_tg<\/td>\n<td class=\"wartn\">340 ms<\/td>\n<td class=\"wartn\">322 ms (<span class=\"ben1\">1.06x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio_tcp<\/td>\n<td class=\"wartn\">966 ms<\/td>\n<td class=\"wartn\">707 ms (<span class=\"ben1s\">1.37x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio_tcp_ssl<\/td>\n<td class=\"wartn\">3.22 sec<\/td>\n<td class=\"wartn\">2.24 sec (<span class=\"ben1s\">1.44x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">bench_mp_pool<\/td>\n<td class=\"wartn\">87.2 ms<\/td>\n<td class=\"wartn\">96.7 ms (<span class=\"ben2s\">1.11x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">bench_thread_pool<\/td>\n<td class=\"wartn\">1.13 ms<\/td>\n<td class=\"wartn\">1.18 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">chameleon<\/td>\n<td class=\"wartn\">6.01 ms<\/td>\n<td class=\"wartn\">5.87 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">chaos<\/td>\n<td class=\"wartn\">55.7 ms<\/td>\n<td class=\"wartn\">50.8 ms (<span class=\"ben1s\">1.10x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">comprehensions<\/td>\n<td class=\"wartn\">18.4 us<\/td>\n<td class=\"wartn\">16.5 us (<span class=\"ben1s\">1.12x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">coroutines<\/td>\n<td class=\"wartn\">16.8 ms<\/td>\n<td class=\"wartn\">16.3 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">coverage<\/td>\n<td class=\"wartn\">163 ms<\/td>\n<td class=\"wartn\">267 ms (<span class=\"ben2s\">1.63x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">create_gc_cycles<\/td>\n<td class=\"wartn\">799 us<\/td>\n<td class=\"wartn\">782 us (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">crypto_pyaes<\/td>\n<td class=\"wartn\">54.9 ms<\/td>\n<td class=\"wartn\">54.2 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">dask<\/td>\n<td class=\"wartn\">379 ms<\/td>\n<td class=\"wartn\">366 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy<\/td>\n<td class=\"wartn\">282 us<\/td>\n<td class=\"wartn\">269 us (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy_memo<\/td>\n<td class=\"wartn\">28.9 us<\/td>\n<td class=\"wartn\">28.0 us (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy_reduce<\/td>\n<td class=\"wartn\">2.35 us<\/td>\n<td class=\"wartn\">2.40 us (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deltablue<\/td>\n<td class=\"wartn\">3.02 ms<\/td>\n<td class=\"wartn\">2.46 ms (<span class=\"ben1s\">1.23x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">django_template<\/td>\n<td class=\"wartn\">27.6 ms<\/td>\n<td class=\"wartn\">26.6 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">docutils<\/td>\n<td class=\"wartn\">1.86 sec<\/td>\n<td class=\"wartn\">1.90 sec (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">fannkuch<\/td>\n<td class=\"wartn\">283 ms<\/td>\n<td class=\"wartn\">281 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">float<\/td>\n<td class=\"wartn\">62.2 ms<\/td>\n<td class=\"wartn\">62.4 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">gc_traversal<\/td>\n<td class=\"wartn\">1.80 ms<\/td>\n<td class=\"wartn\">1.85 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">generators<\/td>\n<td class=\"wartn\">38.2 ms<\/td>\n<td class=\"wartn\">25.7 ms (<span class=\"ben1s\">1.49x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">genshi_text<\/td>\n<td class=\"wartn\">19.5 ms<\/td>\n<td class=\"wartn\">18.5 ms (<span class=\"ben1\">1.06x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">genshi_xml<\/td>\n<td class=\"wartn\">118 ms<\/td>\n<td class=\"wartn\">103 ms (<span class=\"ben1\">1.06x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">hexiom<\/td>\n<td class=\"wartn\">5.19 ms<\/td>\n<td class=\"wartn\">4.74 ms (<span class=\"ben1s\">1.10x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">html5lib<\/td>\n<td class=\"wartn\">45.5 ms<\/td>\n<td class=\"wartn\">43.6 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">json_dumps<\/td>\n<td class=\"wartn\">8.76 ms<\/td>\n<td class=\"wartn\">6.54 ms (<span class=\"ben1s\">1.34x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">json_loads<\/td>\n<td class=\"wartn\">16.3 us<\/td>\n<td class=\"wartn\">15.9 us (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_format<\/td>\n<td class=\"wartn\">7.67 us<\/td>\n<td class=\"wartn\">7.40 us (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_silent<\/td>\n<td class=\"wartn\">81.4 ns<\/td>\n<td class=\"wartn\">70.5 ns (<span class=\"ben1s\">1.16x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_simple<\/td>\n<td class=\"wartn\">7.25 us<\/td>\n<td class=\"wartn\">6.83 us (<span class=\"ben1\">1.06x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">mako<\/td>\n<td class=\"wartn\">8.19 ms<\/td>\n<td class=\"wartn\">7.76 ms (<span class=\"ben1\">1.06x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">mdp<\/td>\n<td class=\"wartn\">1.93 sec<\/td>\n<td class=\"wartn\">1.81 sec (<span class=\"ben1\">1.07x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">meteor_contest<\/td>\n<td class=\"wartn\">85.9 ms<\/td>\n<td class=\"wartn\">88.9 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">nbody<\/td>\n<td class=\"wartn\">82.0 ms<\/td>\n<td class=\"wartn\">88.4 ms (<span class=\"ben2\">1.08x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">nqueens<\/td>\n<td class=\"wartn\">73.8 ms<\/td>\n<td class=\"wartn\">70.9 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pathlib<\/td>\n<td class=\"wartn\">73.4 ms<\/td>\n<td class=\"wartn\">99.6 ms (<span class=\"ben2s\">1.36x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle<\/td>\n<td class=\"wartn\">7.71 us<\/td>\n<td class=\"wartn\">8.56 us (<span class=\"ben2s\">1.11x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_dict<\/td>\n<td class=\"wartn\">22.0 us<\/td>\n<td class=\"wartn\">22.4 us (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_list<\/td>\n<td class=\"wartn\">3.23 us<\/td>\n<td class=\"wartn\">3.38 us (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_pure_python<\/td>\n<td class=\"wartn\">229 us<\/td>\n<td class=\"wartn\">229 us (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pidigits<\/td>\n<td class=\"wartn\">169 ms<\/td>\n<td class=\"wartn\">171 ms (<span class=\"ben2\">1.01x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pprint_pformat<\/td>\n<td class=\"wartn\">1.19 sec<\/td>\n<td class=\"wartn\">1.23 sec (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pprint_safe_repr<\/td>\n<td class=\"wartn\">581 ms<\/td>\n<td class=\"wartn\">604 ms (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pyflate<\/td>\n<td class=\"wartn\">359 ms<\/td>\n<td class=\"wartn\">352 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">python_startup<\/td>\n<td class=\"wartn\">23.1 ms<\/td>\n<td class=\"wartn\">22.5 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">python_startup_no_site<\/td>\n<td class=\"wartn\">19.8 ms<\/td>\n<td class=\"wartn\">19.4 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">raytrace<\/td>\n<td class=\"wartn\">233 ms<\/td>\n<td class=\"wartn\">225 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_compile<\/td>\n<td class=\"wartn\">102 ms<\/td>\n<td class=\"wartn\">101 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_dna<\/td>\n<td class=\"wartn\">136 ms<\/td>\n<td class=\"wartn\">134 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_effbot<\/td>\n<td class=\"wartn\">1.72 ms<\/td>\n<td class=\"wartn\">1.81 ms (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_v8<\/td>\n<td class=\"wartn\">15.5 ms<\/td>\n<td class=\"wartn\">16.0 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">richards<\/td>\n<td class=\"wartn\">35.0 ms<\/td>\n<td class=\"wartn\">31.2 ms (<span class=\"ben1s\">1.12x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">richards_super<\/td>\n<td class=\"wartn\">43.1 ms<\/td>\n<td class=\"wartn\">35.2 ms (<span class=\"ben1s\">1.22x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_fft<\/td>\n<td class=\"wartn\">212 ms<\/td>\n<td class=\"wartn\">207 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_lu<\/td>\n<td class=\"wartn\">71.5 ms<\/td>\n<td class=\"wartn\">69.9 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_monte_carlo<\/td>\n<td class=\"wartn\">53.3 ms<\/td>\n<td class=\"wartn\">50.9 ms (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_sor<\/td>\n<td class=\"wartn\">87.5 ms<\/td>\n<td class=\"wartn\">94.6 ms (<span class=\"ben2\">1.08x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_sparse_mat_mult<\/td>\n<td class=\"wartn\">2.97 ms<\/td>\n<td class=\"wartn\">2.89 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">spectral_norm<\/td>\n<td class=\"wartn\">77.2 ms<\/td>\n<td class=\"wartn\">74.3 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_normalize<\/td>\n<td class=\"wartn\">219 ms<\/td>\n<td class=\"wartn\">212 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_optimize<\/td>\n<td class=\"wartn\">40.6 ms<\/td>\n<td class=\"wartn\">38.9 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_parse<\/td>\n<td class=\"wartn\">1.07 ms<\/td>\n<td class=\"wartn\">937 us (<span class=\"ben2s\">1.15x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_transpile<\/td>\n<td class=\"wartn\">1.31 ms<\/td>\n<td class=\"wartn\">1.18 ms (<span class=\"ben1s\">1.11x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlite_synth<\/td>\n<td class=\"wartn\">1.97 us<\/td>\n<td class=\"wartn\">2.00 us (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_expand<\/td>\n<td class=\"wartn\">350 ms<\/td>\n<td class=\"wartn\">320 ms (<span class=\"ben1\">1.09x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_integrate<\/td>\n<td class=\"wartn\">15.9 ms<\/td>\n<td class=\"wartn\">14.9 ms (<span class=\"ben1\">1.07x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_str<\/td>\n<td class=\"wartn\">215 ms<\/td>\n<td class=\"wartn\">199 ms (<span class=\"ben1\">1.08x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_sum<\/td>\n<td class=\"wartn\">118 ms<\/td>\n<td class=\"wartn\">104 ms (<span class=\"ben1s\">1.14x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">telco<\/td>\n<td class=\"wartn\">4.60 ms<\/td>\n<td class=\"wartn\">4.80 ms (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">tomli_loads<\/td>\n<td class=\"wartn\">1.60 sec<\/td>\n<td class=\"wartn\">1.59 sec (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">tornado_http<\/td>\n<td class=\"wartn\">116 ms<\/td>\n<td class=\"wartn\">116 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">typing_runtime_protocols<\/td>\n<td class=\"wartn\">377 us<\/td>\n<td class=\"wartn\">116 us (<span class=\"ben1s\">3.25x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpack_sequence<\/td>\n<td class=\"wartn\">52.6 ns<\/td>\n<td class=\"wartn\">48.7 ns (<span class=\"ben1\">1.08x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle<\/td>\n<td class=\"wartn\">9.04 us<\/td>\n<td class=\"wartn\">9.69 us (<span class=\"ben2\">1.07x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle_list<\/td>\n<td class=\"wartn\">2.99 us<\/td>\n<td class=\"wartn\">3.08 us (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle_pure_python<\/td>\n<td class=\"wartn\">173 us<\/td>\n<td class=\"wartn\">160 us (<span class=\"ben1\">1.08x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_generate<\/td>\n<td class=\"wartn\">62.2 ms<\/td>\n<td class=\"wartn\">66.0 ms (<span class=\"ben2\">1.06x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_iterparse<\/td>\n<td class=\"wartn\">75.5 ms<\/td>\n<td class=\"wartn\">72.4 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_parse<\/td>\n<td class=\"wartn\">116 ms<\/td>\n<td class=\"wartn\">104 ms (<span class=\"ben1s\">1.11x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_process<\/td>\n<td class=\"wartn\">42.7 ms<\/td>\n<td class=\"wartn\">45.1 ms (<span class=\"ben2\">1.06x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\"><strong>Wynik (\u015brednia geometryczna)<\/strong><\/td>\n<td class=\"wartn\"><\/td>\n<td class=\"wartn ben1b\"><span class=\"ben1\">1.05x szybciej<\/span><\/td>\n<\/tr>\n<\/table>\n<p>Przeprowadzona analiza wskazuje na to, \u017ce Python 3.12 ma najlepsze wyniki wydajno\u015bciowe w por\u00f3wnaniu do Pythona 3.11 w nast\u0119puj\u0105cych testach: <strong>typing_runtime_protocols<\/strong> (<span class=\"ben1s\">3.25x szybciej<\/span>), <strong>generators<\/strong> (<span class=\"ben1s\">1.49x szybciej<\/span>), <strong>asyncio_tcp_ssl<\/strong> (<span class=\"ben1s\">1.44x szybciej<\/span>). Mo\u017cna jednak zauwa\u017cy\u0107 spadek wydajno\u015bci w niekt\u00f3rych testach, szczeg\u00f3lnie w <strong>coverage<\/strong> (<span class=\"ben2s\">1.63x wolniej<\/span>), <strong>pathlib<\/strong> (<span class=\"ben2s\">1.36x wolniej<\/span>), <strong>async_generators<\/strong> (<span class=\"ben2s\">1.29x wolniej<\/span>).<\/p>\n<p>Dodatkowo mo\u017cna sprawdzi\u0107 r\u00f3\u017cnice w wydajno\u015bci pomi\u0119dzy Pythonem 3.12 i Pythonem 3.11 w oparciu o testy nale\u017c\u0105ce do okre\u015blonych grup. Poni\u017csza tabela przedstawia \u015bredni\u0105 geometryczn\u0105 dla test\u00f3w por\u00f3wnawczych w ramach poszczeg\u00f3lnych grup dla Pythona 3.12 w por\u00f3wnaniu z Pythonem 3.11.<\/p>\n<table class=\"benchtab\">\n<tr>\n<th style=\"text-align:left;\">Grupa test\u00f3w<\/th>\n<th style=\"text-align:right;\">Python 3.12 w por\u00f3wnaniu do Pythona 3.11<\/th>\n<\/tr>\n<tr>\n<td class=\"nameben\">apps<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.00x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.08x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">math<\/td>\n<td class=\"wartn\"><span class=\"ben2\">1.03x wolniej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex<\/td>\n<td class=\"wartn\"><span class=\"ben2\">1.02x wolniej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">serialize<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.01x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">startup<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.02x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">template<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.05x szybciej<\/span><\/td>\n<\/tr>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>W ramach tego artyku\u0142u zosta\u0142y opisane wyniki test\u00f3w wydajno\u015bciowych dla Pythona 3.12 w por\u00f3wnaniu z Pythonem 3.11. W sumie zosta\u0142o przeprowadzono 91 r\u00f3\u017cnych test\u00f3w por\u00f3wnawczych na komputerach z procesorem serii AMD Ryzen 7000 oraz procesorem Intel Core 13. generacji. Jeden z nich u\u017cywany jest w komputerach stacjonarnych, drugi &#8211; w laptopach lub komputerach mini PC.<\/p>\n","protected":false},"author":1,"featured_media":831,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[138,139,137,140],"class_list":["post-830","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artykuly","tag-amd-ryzen-serii-7000","tag-intel-core-13-generacji","tag-python","tag-test-wydajnosci"],"_links":{"self":[{"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/posts\/830","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/comments?post=830"}],"version-history":[{"count":0,"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/posts\/830\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/media\/831"}],"wp:attachment":[{"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/media?parent=830"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/categories?post=830"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/tags?post=830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}