{"id":820,"date":"2023-07-13T17:48:10","date_gmt":"2023-07-13T15:48:10","guid":{"rendered":"https:\/\/lewoniewski.info\/blog\/?p=820"},"modified":"2023-10-18T19:05:11","modified_gmt":"2023-10-18T17:05:11","slug":"python-3-8-kontra-python-3-9-test-wydajnosci","status":"publish","type":"post","link":"https:\/\/lewoniewski.info\/blog\/2023\/python-3-8-kontra-python-3-9-test-wydajnosci\/","title":{"rendered":"Python 3.8 kontra Python 3.9 \u2013 test wydajno\u015bci"},"content":{"rendered":"<p>Ten artyku\u0142 opisuje wyniki test\u00f3w wydajno\u015bciowych dla Pythona 3.9 w por\u00f3wnaniu do poprzedniej wersji tego j\u0119zyka programowania, kt\u00f3rym jest Python 3.8. W sumie zosta\u0142o przeprowadzono 89 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-3810\/\" rel=\"noopener\" target=\"_blank\">Pythonie 3.8.10<\/a> oraz <a href=\"https:\/\/www.python.org\/downloads\/release\/python-3913\/\" rel=\"noopener\" target=\"_blank\">Pythonie 3.9.13<\/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 89 test\u00f3w przeprowadzonych przy u\u017cyciu Pythona 3.8 (jako punktu odniesienia) i Pythona 3.9 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.8<\/th>\n<th style=\"text-align:right;\">Python 3.9<\/th>\n<\/tr>\n<tr>\n<td class=\"nameben\">2to3<\/td>\n<td class=\"wartn\">216 ms<\/td>\n<td class=\"wartn\">217 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_generators<\/td>\n<td class=\"wartn\">231 ms<\/td>\n<td class=\"wartn\">221 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_cpu_io_mixed<\/td>\n<td class=\"wartn\">683 ms<\/td>\n<td class=\"wartn\">682 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_io<\/td>\n<td class=\"wartn\">1.35 sec<\/td>\n<td class=\"wartn\">1.33 sec (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_memoization<\/td>\n<td class=\"wartn\">552 ms<\/td>\n<td class=\"wartn\">559 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_none<\/td>\n<td class=\"wartn\">456 ms<\/td>\n<td class=\"wartn\">479 ms (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio_tcp<\/td>\n<td class=\"wartn\">650 ms<\/td>\n<td class=\"wartn\">619 ms (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio_tcp_ssl<\/td>\n<td class=\"wartn\">1.84 sec<\/td>\n<td class=\"wartn\">1.76 sec (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">bench_mp_pool<\/td>\n<td class=\"wartn\">55.1 ms<\/td>\n<td class=\"wartn\">56.7 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">bench_thread_pool<\/td>\n<td class=\"wartn\">727 us<\/td>\n<td class=\"wartn\">706 us (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">chameleon<\/td>\n<td class=\"wartn\">7.19 ms<\/td>\n<td class=\"wartn\">6.03 ms (<span class=\"ben1s\">1.19x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">chaos<\/td>\n<td class=\"wartn\">60.9 ms<\/td>\n<td class=\"wartn\">57.6 ms (<span class=\"ben1\">1.06x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">comprehensions<\/td>\n<td class=\"wartn\">14.3 us<\/td>\n<td class=\"wartn\">14.5 us (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">coroutines<\/td>\n<td class=\"wartn\">21.9 ms<\/td>\n<td class=\"wartn\">21.4 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">coverage<\/td>\n<td class=\"wartn\">25.4 ms<\/td>\n<td class=\"wartn\">25.5 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">create_gc_cycles<\/td>\n<td class=\"wartn\">602 us<\/td>\n<td class=\"wartn\">635 us (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">crypto_pyaes<\/td>\n<td class=\"wartn\">65.0 ms<\/td>\n<td class=\"wartn\">61.8 ms (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">dask<\/td>\n<td class=\"wartn\">265 ms<\/td>\n<td class=\"wartn\">269 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy<\/td>\n<td class=\"wartn\">252 us<\/td>\n<td class=\"wartn\">245 us (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy_memo<\/td>\n<td class=\"wartn\">29.0 us<\/td>\n<td class=\"wartn\">28.3 us (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy_reduce<\/td>\n<td class=\"wartn\">2.24 us<\/td>\n<td class=\"wartn\">2.19 us (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deltablue<\/td>\n<td class=\"wartn\">4.06 ms<\/td>\n<td class=\"wartn\">4.00 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">django_template<\/td>\n<td class=\"wartn\">29.4 ms<\/td>\n<td class=\"wartn\">28.4 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">docutils<\/td>\n<td class=\"wartn\">1.54 sec<\/td>\n<td class=\"wartn\">1.57 sec (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">dulwich_log<\/td>\n<td class=\"wartn\">43.9 ms<\/td>\n<td class=\"wartn\">42.7 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">fannkuch<\/td>\n<td class=\"wartn\">264 ms<\/td>\n<td class=\"wartn\">263 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">float<\/td>\n<td class=\"wartn\">67.4 ms<\/td>\n<td class=\"wartn\">66.6 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">gc_traversal<\/td>\n<td class=\"wartn\">1.43 ms<\/td>\n<td class=\"wartn\">1.20 ms (<span class=\"ben1s\">1.19x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">generators<\/td>\n<td class=\"wartn\">33.5 ms<\/td>\n<td class=\"wartn\">32.8 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">genshi_text<\/td>\n<td class=\"wartn\">18.7 ms<\/td>\n<td class=\"wartn\">19.1 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">genshi_xml<\/td>\n<td class=\"wartn\">139 ms<\/td>\n<td class=\"wartn\">140 ms (<span class=\"ben2\">1.08x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">hexiom<\/td>\n<td class=\"wartn\">5.57 ms<\/td>\n<td class=\"wartn\">5.26 ms (<span class=\"ben1\">1.06x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">html5lib<\/td>\n<td class=\"wartn\">41.4 ms<\/td>\n<td class=\"wartn\">41.6 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">json_dumps<\/td>\n<td class=\"wartn\">8.16 ms<\/td>\n<td class=\"wartn\">8.28 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">json_loads<\/td>\n<td class=\"wartn\">15.8 us<\/td>\n<td class=\"wartn\">14.0 us (<span class=\"ben1s\">1.13x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_format<\/td>\n<td class=\"wartn\">6.29 us<\/td>\n<td class=\"wartn\">6.22 us (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_silent<\/td>\n<td class=\"wartn\">104 ns<\/td>\n<td class=\"wartn\">104 ns (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_simple<\/td>\n<td class=\"wartn\">5.92 us<\/td>\n<td class=\"wartn\">5.78 us (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">mako<\/td>\n<td class=\"wartn\">9.58 ms<\/td>\n<td class=\"wartn\">9.41 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">mdp<\/td>\n<td class=\"wartn\">1.64 sec<\/td>\n<td class=\"wartn\">1.77 sec (<span class=\"ben2\">1.08x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">meteor_contest<\/td>\n<td class=\"wartn\">64.7 ms<\/td>\n<td class=\"wartn\">63.7 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">nbody<\/td>\n<td class=\"wartn\">76.8 ms<\/td>\n<td class=\"wartn\">80.7 ms (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">nqueens<\/td>\n<td class=\"wartn\">60.8 ms<\/td>\n<td class=\"wartn\">57.7 ms (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pathlib<\/td>\n<td class=\"wartn\">81.5 ms<\/td>\n<td class=\"wartn\">80.5 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle<\/td>\n<td class=\"wartn\">6.68 us<\/td>\n<td class=\"wartn\">6.98 us (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_dict<\/td>\n<td class=\"wartn\">17.9 us<\/td>\n<td class=\"wartn\">17.9 us (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_list<\/td>\n<td class=\"wartn\">2.57 us<\/td>\n<td class=\"wartn\">2.49 us (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_pure_python<\/td>\n<td class=\"wartn\">255 us<\/td>\n<td class=\"wartn\">250 us (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pidigits<\/td>\n<td class=\"wartn\">136 ms<\/td>\n<td class=\"wartn\">139 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pprint_pformat<\/td>\n<td class=\"wartn\">902 ms<\/td>\n<td class=\"wartn\">900 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pyflate<\/td>\n<td class=\"wartn\">394 ms<\/td>\n<td class=\"wartn\">394 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">python_startup<\/td>\n<td class=\"wartn\">17.8 ms<\/td>\n<td class=\"wartn\">17.7 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">python_startup_no_site<\/td>\n<td class=\"wartn\">13.4 ms<\/td>\n<td class=\"wartn\">13.2 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">raytrace<\/td>\n<td class=\"wartn\">272 ms<\/td>\n<td class=\"wartn\">267 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_compile<\/td>\n<td class=\"wartn\">88.5 ms<\/td>\n<td class=\"wartn\">86.8 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_dna<\/td>\n<td class=\"wartn\">116 ms<\/td>\n<td class=\"wartn\">106 ms (<span class=\"ben1\">1.09x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_effbot<\/td>\n<td class=\"wartn\">1.90 ms<\/td>\n<td class=\"wartn\">1.81 ms (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_v8<\/td>\n<td class=\"wartn\">15.1 ms<\/td>\n<td class=\"wartn\">14.9 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">richards<\/td>\n<td class=\"wartn\">38.3 ms<\/td>\n<td class=\"wartn\">38.0 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">richards_super<\/td>\n<td class=\"wartn\">47.1 ms<\/td>\n<td class=\"wartn\">48.5 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_fft<\/td>\n<td class=\"wartn\">212 ms<\/td>\n<td class=\"wartn\">205 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_lu<\/td>\n<td class=\"wartn\">86.3 ms<\/td>\n<td class=\"wartn\">85.4 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_monte_carlo<\/td>\n<td class=\"wartn\">58.1 ms<\/td>\n<td class=\"wartn\">57.9 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_sor<\/td>\n<td class=\"wartn\">104 ms<\/td>\n<td class=\"wartn\">105 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_sparse_mat_mult<\/td>\n<td class=\"wartn\">3.08 ms<\/td>\n<td class=\"wartn\">3.04 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">spectral_norm<\/td>\n<td class=\"wartn\">81.9 ms<\/td>\n<td class=\"wartn\">79.7 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlalchemy_declarative<\/td>\n<td class=\"wartn\">72.5 ms<\/td>\n<td class=\"wartn\">72.4 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlalchemy_imperative<\/td>\n<td class=\"wartn\">8.39 ms<\/td>\n<td class=\"wartn\">8.55 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_normalize<\/td>\n<td class=\"wartn\">185 ms<\/td>\n<td class=\"wartn\">181 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_optimize<\/td>\n<td class=\"wartn\">35.0 ms<\/td>\n<td class=\"wartn\">34.6 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_parse<\/td>\n<td class=\"wartn\">1.17 ms<\/td>\n<td class=\"wartn\">1.20 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_transpile<\/td>\n<td class=\"wartn\">1.36 ms<\/td>\n<td class=\"wartn\">1.36 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlite_synth<\/td>\n<td class=\"wartn\">1.83 us<\/td>\n<td class=\"wartn\">1.68 us (<span class=\"ben1\">1.09x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_expand<\/td>\n<td class=\"wartn\">255 ms<\/td>\n<td class=\"wartn\">261 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_integrate<\/td>\n<td class=\"wartn\">12.3 ms<\/td>\n<td class=\"wartn\">12.8 ms (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_str<\/td>\n<td class=\"wartn\">155 ms<\/td>\n<td class=\"wartn\">159 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_sum<\/td>\n<td class=\"wartn\">86.3 ms<\/td>\n<td class=\"wartn\">87.4 ms (<span class=\"ben2\">1.01x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">telco<\/td>\n<td class=\"wartn\">3.62 ms<\/td>\n<td class=\"wartn\">3.89 ms (<span class=\"ben2\">1.07x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">tomli_loads<\/td>\n<td class=\"wartn\">1.65 sec<\/td>\n<td class=\"wartn\">1.57 sec (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">tornado_http<\/td>\n<td class=\"wartn\">101 ms<\/td>\n<td class=\"wartn\">101 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">typing_runtime_protocols<\/td>\n<td class=\"wartn\">316 us<\/td>\n<td class=\"wartn\">301 us (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpack_sequence<\/td>\n<td class=\"wartn\">34.3 ns<\/td>\n<td class=\"wartn\">35.0 ns (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle<\/td>\n<td class=\"wartn\">9.60 us<\/td>\n<td class=\"wartn\">7.90 us (<span class=\"ben1s\">1.21x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle_list<\/td>\n<td class=\"wartn\">2.70 us<\/td>\n<td class=\"wartn\">2.87 us (<span class=\"ben2\">1.06x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle_pure_python<\/td>\n<td class=\"wartn\">175 us<\/td>\n<td class=\"wartn\">171 us (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_generate<\/td>\n<td class=\"wartn\">57.9 ms<\/td>\n<td class=\"wartn\">53.7 ms (<span class=\"ben1\">1.08x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_iterparse<\/td>\n<td class=\"wartn\">55.3 ms<\/td>\n<td class=\"wartn\">55.4 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_parse<\/td>\n<td class=\"wartn\">85.7 ms<\/td>\n<td class=\"wartn\">84.1 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_process<\/td>\n<td class=\"wartn\">44.7 ms<\/td>\n<td class=\"wartn\">42.9 ms (<span class=\"ben1\">1.04x szybciej<\/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.02x szybciej<\/span><\/td>\n<\/tr>\n<\/table>\n<p>Przeprowadzona analiza wskazuje na to, \u017ce Python 3.9 ma najlepsze wyniki wydajno\u015bciowe w por\u00f3wnaniu do Pythona 3.8 w nast\u0119puj\u0105cych testach: <strong>unpickle<\/strong> (<span class=\"ben1s\">1.21x szybciej<\/span>), <strong>chameleon<\/strong> (<span class=\"ben1s\">1.19x szybciej<\/span>), <strong>gc_traversal<\/strong> (<span class=\"ben1s\">1.19x szybciej<\/span>). Mo\u017cna jednak zauwa\u017cy\u0107 spadek wydajno\u015bci w niekt\u00f3rych testach, szczeg\u00f3lnie w <strong>genshi_xml<\/strong> (<span class=\"ben2\">1.08x szybciej<\/span>), <strong>mdp<\/strong> (<span class=\"ben2\">1.08x wolniej<\/span>), <strong>telco<\/strong> (<span class=\"ben2\">1.07x wolniej<\/span>).<\/p>\n<p>Dodatkowo mo\u017cna sprawdzi\u0107 r\u00f3\u017cnice w wydajno\u015bci pomi\u0119dzy Pythonem 3.9 i Pythonem 3.8 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.9 w por\u00f3wnaniu z Pythonem 3.8.<\/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.9 w por\u00f3wnaniu do Pythona 3.8<\/th>\n<\/tr>\n<tr>\n<td class=\"nameben\">apps<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.03x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio<\/td>\n<td class=\"wartn\"><span class=\"ben2\">1.01x wolniej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">math<\/td>\n<td class=\"wartn\"><span class=\"ben2\">1.02x wolniej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.04x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">serialize<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.03x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">startup<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.01x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">template<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.03x 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 89 test\u00f3w przeprowadzonych przy u\u017cyciu Pythona 3.8 (jako punktu odniesienia) i Pythona 3.9 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.8<\/th>\n<th style=\"text-align:right;\">Python 3.9<\/th>\n<\/tr>\n<tr>\n<td class=\"nameben\">2to3<\/td>\n<td class=\"wartn\">286 ms<\/td>\n<td class=\"wartn\">281 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_generators<\/td>\n<td class=\"wartn\">255 ms<\/td>\n<td class=\"wartn\">249 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_cpu_io_mixed<\/td>\n<td class=\"wartn\">709 ms<\/td>\n<td class=\"wartn\">708 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_io<\/td>\n<td class=\"wartn\">1.17 sec<\/td>\n<td class=\"wartn\">1.17 sec (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_memoization<\/td>\n<td class=\"wartn\">574 ms<\/td>\n<td class=\"wartn\">583 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">async_tree_none<\/td>\n<td class=\"wartn\">460 ms<\/td>\n<td class=\"wartn\">479 ms (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio_tcp<\/td>\n<td class=\"wartn\">944 ms<\/td>\n<td class=\"wartn\">912 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio_tcp_ssl<\/td>\n<td class=\"wartn\">2.29 sec<\/td>\n<td class=\"wartn\">2.24 sec (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">bench_mp_pool<\/td>\n<td class=\"wartn\">87.9 ms<\/td>\n<td class=\"wartn\">92.4 ms (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">bench_thread_pool<\/td>\n<td class=\"wartn\">1.21 ms<\/td>\n<td class=\"wartn\">1.20 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">chameleon<\/td>\n<td class=\"wartn\">11.6 ms<\/td>\n<td class=\"wartn\">6.93 ms (<span class=\"ben1s\">1.67x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">chaos<\/td>\n<td class=\"wartn\">70.1 ms<\/td>\n<td class=\"wartn\">69.2 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">comprehensions<\/td>\n<td class=\"wartn\">17.8 us<\/td>\n<td class=\"wartn\">16.3 us (<span class=\"ben1\">1.09x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">coroutines<\/td>\n<td class=\"wartn\">28.2 ms<\/td>\n<td class=\"wartn\">25.4 ms (<span class=\"ben1s\">1.11x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">coverage<\/td>\n<td class=\"wartn\">26.1 ms<\/td>\n<td class=\"wartn\">25.2 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">create_gc_cycles<\/td>\n<td class=\"wartn\">861 us<\/td>\n<td class=\"wartn\">883 us (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">crypto_pyaes<\/td>\n<td class=\"wartn\">73.8 ms<\/td>\n<td class=\"wartn\">70.5 ms (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">dask<\/td>\n<td class=\"wartn\">440 ms<\/td>\n<td class=\"wartn\">436 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy<\/td>\n<td class=\"wartn\">296 us<\/td>\n<td class=\"wartn\">288 us (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy_memo<\/td>\n<td class=\"wartn\">32.5 us<\/td>\n<td class=\"wartn\">31.2 us (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deepcopy_reduce<\/td>\n<td class=\"wartn\">2.53 us<\/td>\n<td class=\"wartn\">2.52 us (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">deltablue<\/td>\n<td class=\"wartn\">4.49 ms<\/td>\n<td class=\"wartn\">4.50 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">django_template<\/td>\n<td class=\"wartn\">34.1 ms<\/td>\n<td class=\"wartn\">34.6 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">docutils<\/td>\n<td class=\"wartn\">2.03 sec<\/td>\n<td class=\"wartn\">2.08 sec (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">dulwich_log<\/td>\n<td class=\"wartn\">56.7 ms<\/td>\n<td class=\"wartn\">57.7 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">fannkuch<\/td>\n<td class=\"wartn\">297 ms<\/td>\n<td class=\"wartn\">289 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">float<\/td>\n<td class=\"wartn\">74.7 ms<\/td>\n<td class=\"wartn\">73.1 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">gc_traversal<\/td>\n<td class=\"wartn\">1.74 ms<\/td>\n<td class=\"wartn\">1.69 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">generators<\/td>\n<td class=\"wartn\">35.5 ms<\/td>\n<td class=\"wartn\">34.4 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">genshi_text<\/td>\n<td class=\"wartn\">21.3 ms<\/td>\n<td class=\"wartn\">21.1 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">genshi_xml<\/td>\n<td class=\"wartn\">160 ms<\/td>\n<td class=\"wartn\">157 ms (<span class=\"ben1s\">1.50x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">hexiom<\/td>\n<td class=\"wartn\">6.07 ms<\/td>\n<td class=\"wartn\">5.86 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">html5lib<\/td>\n<td class=\"wartn\">55.5 ms<\/td>\n<td class=\"wartn\">56.1 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">json_dumps<\/td>\n<td class=\"wartn\">9.12 ms<\/td>\n<td class=\"wartn\">8.96 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">json_loads<\/td>\n<td class=\"wartn\">22.6 us<\/td>\n<td class=\"wartn\">16.5 us (<span class=\"ben1s\">1.37x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_format<\/td>\n<td class=\"wartn\">7.35 us<\/td>\n<td class=\"wartn\">7.50 us (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_silent<\/td>\n<td class=\"wartn\">110 ns<\/td>\n<td class=\"wartn\">110 ns (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">logging_simple<\/td>\n<td class=\"wartn\">6.94 us<\/td>\n<td class=\"wartn\">6.97 us (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">mako<\/td>\n<td class=\"wartn\">11.0 ms<\/td>\n<td class=\"wartn\">10.5 ms (<span class=\"ben1\">1.05x 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.99 sec (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">meteor_contest<\/td>\n<td class=\"wartn\">81.6 ms<\/td>\n<td class=\"wartn\">81.9 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">nbody<\/td>\n<td class=\"wartn\">78.6 ms<\/td>\n<td class=\"wartn\">81.5 ms (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">nqueens<\/td>\n<td class=\"wartn\">73.5 ms<\/td>\n<td class=\"wartn\">69.8 ms (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pathlib<\/td>\n<td class=\"wartn\">75.3 ms<\/td>\n<td class=\"wartn\">74.6 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle<\/td>\n<td class=\"wartn\">7.56 us<\/td>\n<td class=\"wartn\">7.89 us (<span class=\"ben2\">1.04x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_dict<\/td>\n<td class=\"wartn\">20.0 us<\/td>\n<td class=\"wartn\">20.0 us (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_list<\/td>\n<td class=\"wartn\">3.07 us<\/td>\n<td class=\"wartn\">3.01 us (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pickle_pure_python<\/td>\n<td class=\"wartn\">295 us<\/td>\n<td class=\"wartn\">292 us (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pidigits<\/td>\n<td class=\"wartn\">167 ms<\/td>\n<td class=\"wartn\">170 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pprint_pformat<\/td>\n<td class=\"wartn\">1.06 sec<\/td>\n<td class=\"wartn\">1.05 sec (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">pyflate<\/td>\n<td class=\"wartn\">471 ms<\/td>\n<td class=\"wartn\">471 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">python_startup<\/td>\n<td class=\"wartn\">25.1 ms<\/td>\n<td class=\"wartn\">25.1 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">python_startup_no_site<\/td>\n<td class=\"wartn\">19.9 ms<\/td>\n<td class=\"wartn\">19.8 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">raytrace<\/td>\n<td class=\"wartn\">304 ms<\/td>\n<td class=\"wartn\">301 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_compile<\/td>\n<td class=\"wartn\">112 ms<\/td>\n<td class=\"wartn\">112 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_dna<\/td>\n<td class=\"wartn\">153 ms<\/td>\n<td class=\"wartn\">147 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_effbot<\/td>\n<td class=\"wartn\">1.86 ms<\/td>\n<td class=\"wartn\">1.78 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex_v8<\/td>\n<td class=\"wartn\">17.1 ms<\/td>\n<td class=\"wartn\">16.5 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">richards<\/td>\n<td class=\"wartn\">42.5 ms<\/td>\n<td class=\"wartn\">41.1 ms (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">richards_super<\/td>\n<td class=\"wartn\">53.2 ms<\/td>\n<td class=\"wartn\">51.7 ms (<span class=\"ben1\">1.03x 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\">211 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_lu<\/td>\n<td class=\"wartn\">88.4 ms<\/td>\n<td class=\"wartn\">87.0 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\">66.7 ms<\/td>\n<td class=\"wartn\">65.7 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_sor<\/td>\n<td class=\"wartn\">114 ms<\/td>\n<td class=\"wartn\">111 ms (<span class=\"ben1\">1.03x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">scimark_sparse_mat_mult<\/td>\n<td class=\"wartn\">2.99 ms<\/td>\n<td class=\"wartn\">2.95 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">spectral_norm<\/td>\n<td class=\"wartn\">86.6 ms<\/td>\n<td class=\"wartn\">86.0 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlalchemy_declarative<\/td>\n<td class=\"wartn\">115 ms<\/td>\n<td class=\"wartn\">115 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlalchemy_imperative<\/td>\n<td class=\"wartn\">13.0 ms<\/td>\n<td class=\"wartn\">13.3 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_normalize<\/td>\n<td class=\"wartn\">217 ms<\/td>\n<td class=\"wartn\">207 ms (<span class=\"ben1\">1.05x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_optimize<\/td>\n<td class=\"wartn\">41.3 ms<\/td>\n<td class=\"wartn\">41.0 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_parse<\/td>\n<td class=\"wartn\">1.39 ms<\/td>\n<td class=\"wartn\">1.38 ms (<span class=\"ben1\">1.01x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlglot_transpile<\/td>\n<td class=\"wartn\">1.64 ms<\/td>\n<td class=\"wartn\">1.62 ms (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sqlite_synth<\/td>\n<td class=\"wartn\">2.35 us<\/td>\n<td class=\"wartn\">2.26 us (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_expand<\/td>\n<td class=\"wartn\">336 ms<\/td>\n<td class=\"wartn\">352 ms (<span class=\"ben2\">1.05x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_integrate<\/td>\n<td class=\"wartn\">16.6 ms<\/td>\n<td class=\"wartn\">16.7 ms (<span class=\"ben2\">1.01x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_str<\/td>\n<td class=\"wartn\">207 ms<\/td>\n<td class=\"wartn\">212 ms (<span class=\"ben2\">1.02x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">sympy_sum<\/td>\n<td class=\"wartn\">116 ms<\/td>\n<td class=\"wartn\">115 ms (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">telco<\/td>\n<td class=\"wartn\">4.24 ms<\/td>\n<td class=\"wartn\">4.38 ms (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">tomli_loads<\/td>\n<td class=\"wartn\">1.78 sec<\/td>\n<td class=\"wartn\">1.75 sec (<span class=\"ben1\">1.02x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">tornado_http<\/td>\n<td class=\"wartn\">140 ms<\/td>\n<td class=\"wartn\">142 ms (<span class=\"ben2\">1.01x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">typing_runtime_protocols<\/td>\n<td class=\"wartn\">374 us<\/td>\n<td class=\"wartn\">361 us (<span class=\"ben1\">1.04x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpack_sequence<\/td>\n<td class=\"wartn\">39.6 ns<\/td>\n<td class=\"wartn\">40.9 ns (<span class=\"ben2\">1.03x wolniej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle<\/td>\n<td class=\"wartn\">10.7 us<\/td>\n<td class=\"wartn\">9.05 us (<span class=\"ben1s\">1.18x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle_list<\/td>\n<td class=\"wartn\">2.98 us<\/td>\n<td class=\"wartn\">2.99 us (nieistotne)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">unpickle_pure_python<\/td>\n<td class=\"wartn\">233 us<\/td>\n<td class=\"wartn\">199 us (<span class=\"ben1s\">1.17x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_generate<\/td>\n<td class=\"wartn\">73.5 ms<\/td>\n<td class=\"wartn\">59.5 ms (<span class=\"ben1s\">1.24x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_iterparse<\/td>\n<td class=\"wartn\">75.3 ms<\/td>\n<td class=\"wartn\">69.7 ms (<span class=\"ben1\">1.08x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_parse<\/td>\n<td class=\"wartn\">122 ms<\/td>\n<td class=\"wartn\">113 ms (<span class=\"ben1\">1.08x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">xml_etree_process<\/td>\n<td class=\"wartn\">57.7 ms<\/td>\n<td class=\"wartn\">54.6 ms (<span class=\"ben1\">1.06x szybciej<\/span>)<\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\"><strong>Wynik (\u015arednia geometryczna)<\/strong><\/td>\n<td class=\"wartn\"><\/td>\n<td class=\"wartn ben1b\"><span class=\"ben1\">1.03x szybciej<\/span><\/td>\n<\/tr>\n<\/table>\n<p>Przeprowadzona analiza wskazuje na to, \u017ce Python 3.9 ma najlepsze wyniki wydajno\u015bciowe w por\u00f3wnaniu do Pythona 3.8 w nast\u0119puj\u0105cych testach: <strong>chameleon<\/strong> (<span class=\"ben1s\">1.67x szybciej<\/span>), <strong>genshi_xml<\/strong> (<span class=\"ben1s\">1.50x szybciej<\/span>), <strong>json_loads<\/strong> (<span class=\"ben1s\">1.37x szybciej<\/span>). Mo\u017cna jednak zauwa\u017cy\u0107 spadek wydajno\u015bci w niekt\u00f3rych testach, szczeg\u00f3lnie w <strong>bench_mp_pool<\/strong> (<span class=\"ben2\">1.05x wolniej<\/span>), <strong>sympy_expand<\/strong> (<span class=\"ben2\">1.05x wolniej<\/span>), <strong>async_tree_none<\/strong> (<span class=\"ben2\">1.04x wolniej<\/span>).<\/p>\n<p>Dodatkowo mo\u017cna sprawdzi\u0107 r\u00f3\u017cnice w wydajno\u015bci pomi\u0119dzy Pythonem 3.9 i Pythonem 3.8 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.9 w por\u00f3wnaniu z Pythonem 3.8.<\/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.9 w por\u00f3wnaniu do Pythona 3.8<\/th>\n<\/tr>\n<tr>\n<td class=\"nameben\">apps<\/td>\n<td class=\"wartn\"><span class=\"ben1s\">1.10x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">asyncio<\/td>\n<td class=\"wartn\"><span class=\"ben2\">1.01x wolniej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">math<\/td>\n<td class=\"wartn\"><span class=\"ben2\">1.01x wolniej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">regex<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.03x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">serialize<\/td>\n<td class=\"wartn\"><span class=\"ben1\">1.08x szybciej<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"nameben\">template<\/td>\n<td class=\"wartn\"><span class=\"ben1s\">1.12x szybciej<\/span><\/td>\n<\/tr>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Ten artyku\u0142 opisuje wyniki test\u00f3w wydajno\u015bciowych dla Pythona 3.9 w por\u00f3wnaniu do poprzedniej wersji tego j\u0119zyka programowania, kt\u00f3rym jest Python 3.8. W sumie zosta\u0142o przeprowadzono 89 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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":821,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[138,139,137,140],"class_list":["post-820","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\/820","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=820"}],"version-history":[{"count":0,"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/posts\/820\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/media\/821"}],"wp:attachment":[{"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/media?parent=820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/categories?post=820"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lewoniewski.info\/blog\/wp-json\/wp\/v2\/tags?post=820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}