ΠžΡ†Π΅Π½ΠΊΠ° измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ CPython Π·Π° послСдниС 5 Π»Π΅Ρ‚

МигСль Π“Ρ€ΠΈΠ½Π±Π΅ (Miguel Grinberg), Π°Π²Ρ‚ΠΎΡ€ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ½ΠΈΠ³ ΠΏΠΎ Python-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌ SQLAlchemy ΠΈ Flask, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π΅Ρ‚ΠΎΠΊ CPython с 3.9 ΠΏΠΎ 3.14. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ тСсты ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Ρ‹ для Pypy 3.11 (рСализация Python с JIT-компилятором), Node.js 24 ΠΈ Rust 1.90. Для выпусков CPython 3.13 ΠΈ 3.14 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ JIT-компилятора ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° сборки Free-threading Π±Π΅Π· глобальной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Для измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ использовались скрипты для вычислСния чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ (глубокая рСкурсия) ΠΈ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²ΠΎΠΉ сортировки случайно Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… чисСл, запускаСмыС Π² ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° 4 ΠΏΠΎΡ‚ΠΎΠΊΠ°. ВСсты Π·Π°ΠΏΡƒΡΠΊΠ°Π»ΠΈΡΡŒ Π² Ubuntu 24.04 Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅ с CPU Intel Core i5 ΠΈ macOS Sequoia Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅ с SoC Apple M2.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ тСстов CPython 3.14 оказался быстрСС Π²Π΅Ρ‚ΠΊΠΈ 3.13 ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° 20%, ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тСстах Π²Π΅Ρ‚ΠΊΠΈ 3.11 ΠΈ 3.12 оказались быстрСС 3.13. ΠžΡ‚Ρ€Ρ‹Π² 3.14 ΠΎΡ‚ Π²Π΅Ρ‚ΠΎΠΊ 3.9 ΠΈ 3.10 составил ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π΄Π²Π° Ρ€Π°Π·Π°. Pypy, Node.js ΠΈ Rust ΠΎΠ±ΠΎΠ³Π½Π°Π»ΠΈ CPython 3.14 Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ тСстС Π² 4.93, 4.88 ΠΈ 69.82 Ρ€Π°Π·, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ тСстС Π² 18.14, 6.64 ΠΈ 36.15 Ρ€Π°Π·, соотвСтствСнно (ΡΡ€Π°Π²Π½ΠΈΠ²Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹).

 ΠžΡ†Π΅Π½ΠΊΠ° измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ CPython Π·Π° послСдниС 5 Π»Π΅Ρ‚
 ΠžΡ†Π΅Π½ΠΊΠ° измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ CPython Π·Π° послСдниС 5 Π»Π΅Ρ‚
 ΠžΡ†Π΅Π½ΠΊΠ° измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ CPython Π·Π° послСдниС 5 Π»Π΅Ρ‚
 ΠžΡ†Π΅Π½ΠΊΠ° измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ CPython Π·Π° послСдниС 5 Π»Π΅Ρ‚

Π Π΅ΠΆΠΈΠΌ Π±Π΅Π· глобальной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² CPython 3.14 ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π² Π΄Π²Π° Ρ€Π°Π·Π° ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° с JIT Π² CPython Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ сущСствСнному росту ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π° Π² тСстС Π²Π΅Ρ‚ΠΊΠΈ 3.14 Π² macOS Π΄Π°ΠΆΠ΅ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΠ»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

 ΠžΡ†Π΅Π½ΠΊΠ° измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ CPython Π·Π° послСдниС 5 Π»Π΅Ρ‚
 ΠžΡ†Π΅Π½ΠΊΠ° измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ CPython Π·Π° послСдниС 5 Π»Π΅Ρ‚

Π’ ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… тСстах Ρ€Π΅ΠΆΠΈΠΌ Π±Π΅Π· глобальной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΠ» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡, Π° Ρ€Π΅ΠΆΠΈΠΌ с JIT ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ повлиял Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

 ΠžΡ†Π΅Π½ΠΊΠ° измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ CPython Π·Π° послСдниС 5 Π»Π΅Ρ‚
 ΠžΡ†Π΅Π½ΠΊΠ° измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ CPython Π·Π° послСдниС 5 Π»Π΅Ρ‚


Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ