ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ Π±Π΅ΠΊΠ΅Π½Π΄ TPDE-LLVM, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ 10-20 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ LLVM Π² Ρ€Π΅ΠΆΠΈΠΌ Π±Π΅Π· оптимизация.

Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΡ‚ ВСхничСския унивСрситСт Π² ΠœΡŽΠ½Ρ…Π΅Π½ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ…Π° инструмСнтариум TPDE ΠΈ основан Π½Π° Π½Π΅Π³ΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π·Π° LLVM β€” TPDE-LLVM, ΠΊΠΎΠΉΡ‚ΠΎ осигурява Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° машинСн ΠΊΠΎΠ΄ Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ x86-64 ΠΈ AArch64 Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ прСдставянС Π½Π° ΠΊΠΎΠ΄Π° LLVM-IR. ΠŸΡ€ΠΈ тСстванСто TPDE-LLVM сС ΠΎΠΊΠ°Π·Π° 10-20 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π· ΠΎΡ‚ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° LLVM -O0 (Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° ΠΊΠΎΠ΄ Π±Π΅Π· ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ) ΠΏΡ€ΠΈ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° производитСлност Π½Π° рСзултатния машинСн ΠΊΠΎΠ΄ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° с 10-30%. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° са ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ ΠΏΠΎΠ΄ лицСнзия Apache 2.0.

TPDE-LLVM Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π΅ насочСн към осигуряванС Π½Π° компилация с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ закъснСния ΠΈ Π½ΠΈΠ²ΠΎ Π½Π° качСство, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰ΠΎ Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° компилация Π±Π΅Π· ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ (β€ž-O0β€œ). ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ прСдоставя ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Π·Π° самостоятСлно стартиранС tpde-llc, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° интСграция Π² прилоТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° функционалността Π½Π° JIT-ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π°) ΠΈ ΠΏΠ°Ρ‡ΠΎΠ²Π΅ Π·Π° интСграция с Clang ΠΈ Flang.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ Π±Π΅ΠΊΠ΅Π½Π΄ TPDE-LLVM, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ 10-20 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ LLVM Π² Ρ€Π΅ΠΆΠΈΠΌ Π±Π΅Π· оптимизация.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ основСн ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‰ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π·Π° JIT ΠΈΠ»ΠΈ Π·Π° създаванС Π½Π° Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΈ сборки. TPDE-LLVM сС фокусира само Π²ΡŠΡ€Ρ…Ρƒ скоростта Π½Π° компилация ΠΈ Π½Π΅ сС ΠΎΠΏΠΈΡ‚Π²Π° Π΄Π° ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€Π° с ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‰ΠΈΡ‚Π΅ Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠ²Π΅ Π½Π° LLVM, ΠΊΠΎΠΈΡ‚ΠΎ Π² сравнСниС с TPDE-LLVM работят Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ, Π½ΠΎ позволяват Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎ-Π±ΡŠΡ€Π· ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½ машинСн ΠΊΠΎΠ΄ (ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π· ΠΈ Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-малък ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€).

TPDE-LLVM ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‚Ρ€ΠΈ Π΅Ρ‚Π°ΠΏΠ° Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄:

  • ΠŸΠΎΡ‡ΠΈΡΡ‚Π²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡ‚ΠΎ прСдставянС Π½Π° LLVM;
  • Анализ Π½Π° информацията Π·Π° Ρ†ΠΈΠΊΠ»ΠΈΡ‚Π΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ;
  • Π€ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° машинния ΠΊΠΎΠ΄.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ Π±Π΅ΠΊΠ΅Π½Π΄ TPDE-LLVM, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ 10-20 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ LLVM Π² Ρ€Π΅ΠΆΠΈΠΌ Π±Π΅Π· оптимизация.

ΠžΡ‚Π±Π΅Π»ΡΠ·Π²Π° сС, Ρ‡Π΅ с участиСто Π½Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° TPDE Π² ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° LLVM 19 ΠΈ 20 Π²Π΅Ρ‡Π΅ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ позволяват Π΄Π° сС ускори Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° стандартния Π±Π΅ΠΊΠ΅Π½Π΄ Π½Π° LLVM с 18% Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° x86-64 ΠΈ с 13% Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ARM64. Π‘ΠΏΠΎΡ€Π΅Π΄ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° TPDE Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ с ΠΌΠ°Π»ΠΊΠΎ усилия ΠΌΠΎΠΆΠ΅ Π΄Π° сС ускори Π±Π΅ΠΊΠ΅Π½Π΄ΡŠΡ‚ Π½Π° LLVM с ΠΎΡ‰Π΅ 10-20%, Π½ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎΡ‚ΠΎ повишаванС Π½Π° производитСлността Ρ‰Π΅ изисква Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ измСнСния. ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π° Π΄ΠΎΡ€ΠΈ ΠΏΡ€ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΅ ΠΌΠ°Π»ΠΊΠΎ вСроятно ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡΡ‚ Π±Π΅ΠΊΠ΅Π½Π΄ Π½Π° LLVM Π΄Π° успСС Π΄Π° сС ускори 10 ΠΏΡŠΡ‚ΠΈ.

Π’ тСкущия Π΅Ρ‚Π°ΠΏ Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ TPDE си поставя Π·Π° Ρ†Π΅Π» Π΄Π° осигури ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡ‚ΠΎ прСдставянС Π½Π° ΠΊΠΎΠ΄Π° LLVM, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ ΠΎΡ‚ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° Clang Π² Ρ€Π΅ΠΆΠΈΠΌΠΈΡ‚Π΅ Π½Π° оптимизация Β«-O0Β» ΠΈ Β«-O1Β». ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡ‚ΠΎ прСдставянС, създадСно Π² Ρ€Π΅ΠΆΠΈΠΌ Β«-O2Β», всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½Π° ΠΏΠΎΡ€Π°Π΄ΠΈ липсата Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² TPDE. Частично сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° мСТдинният ΠΊΠΎΠ΄ ΠΎΡ‚ Flang ΠΈ компилятора Rust.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster