Cinder с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° Facebook, Ρ€Π°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π½Π° CPython, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ ΠΎΡ‚ Instagram

Facebook ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° изходния ΠΊΠΎΠ΄ Π·Π° Project Cinder, Ρ€Π°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π½Π° CPython 3.8.5, основната Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π° рСализация Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Python. Cinder сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² производствСната инфраструктура Π½Π° Facebook Π·Π° Π·Π°Ρ…Ρ€Π°Π½Π²Π°Π½Π΅ Π½Π° Instagram ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π° подобряванС Π½Π° производитСлността.

ΠšΠΎΠ΄ΡŠΡ‚ Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½, Π·Π° Π΄Π° обсъди Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° прСнасянС Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈΡ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ към основната Ρ€Π°ΠΌΠΊΠ° Π½Π° CPython ΠΈ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, участващи Π² подобряванСто Π½Π° производитСлността Π½Π° CPython. Facebook Π½Π΅ Π²ΡŠΠ·Π½Π°ΠΌΠ΅Ρ€ΡΠ²Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Cinder ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ ΠΊΠΎΠ΄ΡŠΡ‚ сС прСдставя във Π²ΠΈΠ΄Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² инфраструктурата Π½Π° компанията, Π±Π΅Π· Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ разрСсванС ΠΈ докумСнтация. Π’Π΅ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π½Π΅ сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚ Π΄Π° популяризират Cinder ΠΊΠ°Ρ‚ΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° CPython - основната Ρ†Π΅Π» Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° сС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ самия CPython.

ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Cinder Π΅ отбСлязан ΠΊΠ°Ρ‚ΠΎ доста Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΈ тСстван Π² производствСни срСди, Π½ΠΎ Π°ΠΊΠΎ Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Ρ‰Π΅ трябва Π΄Π° Π³ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ сами, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Facebook Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Ρ‰Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ Π½Π° външни ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° ΠΈ заявки Π·Π° изтСглянС. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Facebook Π½Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π° конструктивно ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ с общността ΠΈ Π΅ Π³ΠΎΡ‚ΠΎΠ² Π΄Π° обсъди ΠΈΠ΄Π΅ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Cinder ΠΎΡ‰Π΅ ΠΏΠΎ-Π±ΡŠΡ€Π· ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° ускори ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ към основната част Π½Π° CPython.

Основни ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ Π² Cinder:

  • Π’Π³Ρ€Π°Π΄Π΅Π½ΠΎ ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄ (β€žΠ·Π°ΡΠ΅Π½Ρ‡Π΅Π½ Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄β€œ). Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΅ Π΄Π° сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ ситуации, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС изпълнява Ρ‚ΠΈΠΏΠΈΡ‡Π΅Π½ ΠΊΠΎΠ΄ Π·Π° опСрация, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½, ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Π΄Π° сС Π·Π°ΠΌΠ΅Π½ΠΈ Ρ‚Π°ΠΊΡŠΠ² ΠΊΠΎΠ΄ Π·Π° опСрация с ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΈ спСциализирани ΠΎΠΏΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ замяна Π½Π° чСсто ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ).
  • ΠΠ΅Ρ‚ΡŠΡ€ΠΏΠ΅Π»ΠΈΠ²Π° ΡΡŠΡ€ΡƒΡ‚ΠΈΠ½Π½Π° ΠΎΡ†Π΅Π½ΠΊΠ°. Π—Π° извиквания Π½Π° асинхронни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ (await Π½Π΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ ΠΈ функцията достига ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π·Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ ΠΏΠΎ-Ρ€Π°Π½ΠΎ), Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сС замСства Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ, Π±Π΅Π· Π΄Π° сС създава ΡΡŠΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈΠ»ΠΈ Π΄Π° сС Π²ΠΊΠ»ΡŽΡ‡Π²Π° Ρ†ΠΈΠΊΡŠΠ» Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ. Π’ΡŠΠ² Facebook ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΉΡ‚ΠΎ силно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° async/await, оптимизацията Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ускоряванС ΠΎΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 5%.
  • Π‘Π΅Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Π° JIT компилация Π½Π° Π½ΠΈΠ²ΠΎ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (method-at-a-time). Активира сС Ρ‡Ρ€Π΅Π· опцията β€ž-X jitβ€œ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π½Π° срСдата PYTHONJIT=1 ΠΈ Π²ΠΈ позволява Π΄Π° ускоритС ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ тСстовС Π·Π° производитСлност с 1.5-4 ΠΏΡŠΡ‚ΠΈ. Въй ΠΊΠ°Ρ‚ΠΎ JIT компилацията Π΅ подходяща само Π·Π° чСсто изпълнявани Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° рядко ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡ΠΈΠ΅Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ ΠΌΠΎΠΆΠ΅ само Π΄Π° Π·Π°Π±Π°Π²ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°.

    Π§Ρ€Π΅Π· опцията β€œ-X jit-list-file=/path/to/jitlist.txt” ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π½Π° срСдата β€œPYTHONJITLISTFILE=/path/to/jitlist.txt” ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° посочитС Ρ„Π°ΠΉΠ» със списък ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ JIT ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° ΠΏΡŠΡ‚Ρ .to.module:funcname ΠΈΠ»ΠΈ path.to.module:ClassName.method_name). Π‘ΠΏΠΈΡΡŠΠΊΡŠΡ‚ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° сС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° JIT, ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ въз основа Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ сС ΠΎΡ‡Π°ΠΊΠ²Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π° JIT компилация въз основа Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ Π°Π½Π°Π»ΠΈΠ· Π½Π° чСстотата Π½Π° извиквания Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΊΠ°Ρ‚ΠΎ сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ спСцификитС Π½Π° стартиранС Π½Π° процСси Π² Instagram, JIT компилацията Π΅ подходяща ΠΈ Π·Π° Facebook Π² началния Π΅Ρ‚Π°ΠΏ.

    JIT ΠΏΡŠΡ€Π²ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄ Π½Π° Python Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ прСдставянС Π½Π° високо Π½ΠΈΠ²ΠΎ (HIR), ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ доста Π±Π»ΠΈΠ·ΠΊΠΎ Π΄ΠΎ Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄Π° Π½Π° Python, Π½ΠΎ Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€, вмСсто Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° стСк, ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° информация Π·Π° Ρ‚ΠΈΠΏΠ° ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ Π·Π° производитСлността подробности (ΠΊΠ°Ρ‚ΠΎ прСброяванС Π½Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ) . Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° HIR сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° във формуляр SSA (статично Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎ присвояванС) ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· ΡΡ‚ΡŠΠΏΠΊΠΈ Π·Π° оптимизация, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ прСброяванСто Π½Π° справки ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ прСдставянС Π½Π° ниско Π½ΠΈΠ²ΠΎ (LIR), Π±Π»ΠΈΠ·ΠΊΠΎ Π΄ΠΎ асСмблСрния Π΅Π·ΠΈΠΊ. Π‘Π»Π΅Π΄ Π΄Ρ€ΡƒΠ³Π° Ρ„Π°Π·Π° Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° LIR, инструкциитС Π·Π° асСмблиранС сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° asmjit.

  • Π‘Ρ‚Ρ€ΠΎΠ³ Ρ€Π΅ΠΆΠΈΠΌ Π·Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Ѐункционалността Π²ΠΊΠ»ΡŽΡ‡Π²Π° Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°: Π’ΠΈΠΏ StrictModule. Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π΅Π½ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ, Ρ‡Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΠ΄ΡƒΠ» няма влияниС Π²ΡŠΡ€Ρ…Ρƒ ΠΊΠΎΠ΄Π° извън Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠ΄ΡƒΠ». Π—Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‰ ΠΌΠΎΠ΄ΡƒΠ», ΠΊΠΎΠΉΡ‚ΠΎ опрСдСля, Ρ‡Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ са Π² строг Ρ€Π΅ΠΆΠΈΠΌ (ΠΊΠΎΠ΄ΡŠΡ‚ ΡƒΠΊΠ°Π·Π²Π° β€žimport __strict__β€œ), провСрява Π·Π° липса Π½Π° прСсичанС с Π΄Ρ€ΡƒΠ³ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π° строги ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² sys.modules ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±Π΅ΠΊΡ‚ StrictModule.
  • Бтатичният Python Π΅ СкспСримСнталСн ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π½Π° Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π½Π° Ρ‚ΠΈΠΏ, Π·Π° Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° спСцифичСн Π·Π° Ρ‚ΠΈΠΏΠ° Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° JIT компилацията. Π’ някои тСстовС комбинацията ΠΎΡ‚ статичСн Python ΠΈ JIT дСмонстрира подобрСния Π½Π° производитСлността Π΄ΠΎ 7 ΠΏΡŠΡ‚ΠΈ Π² сравнСниС със стандартния CPython. Π’ ΠΌΠ½ΠΎΠ³ΠΎ ситуации Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ сС оцСняват ΠΊΠ°Ρ‚ΠΎ Π±Π»ΠΈΠ·ΠΊΠΈ Π΄ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ MyPyC ΠΈ Cython.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€