Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Red Hat
ΠΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ°Π΄ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ MIR ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ Π΄Π»Ρ
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ MIR ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ (ΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ) Π²ΠΈΠ΄Π΅. ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ΅, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ (x86_64, Π² ΠΏΠ»Π°Π½Π°Ρ ARM64, PPC64 ΠΈ MIPS64). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ — ΠΈΠ· MIR Π² CIL, Π±Π°ΠΉΡΠΊΠΎΠ΄ Java, WebAssembly ΠΈ ΠΊΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ.
ΠΠ· ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ MIR Π²ΡΠ΄Π΅Π»ΡΡΡΡ ΡΡΡΠΎΠ³Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ², ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ Ρ.ΠΏ. ΠΠΎΠ΄ΡΠ»ΠΈ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°Ρ MIR, ΠΌΠΎΠ³ΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π² ΡΠΎΡΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ.
ΠΠ»ΡΡΠ΅Π²ΡΠΌ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² JIT Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² Π½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠΈ Π½Π° ΡΠ°Π·Π½ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ (x86, ARM, PPC, MIPS). ΠΠ»Ρ Π½Π΅ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ»ΡΡΠ°Π΅ MIR ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² 6-10 ΡΠ°Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ JIT.
ΠΠ· Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ²
GCC ΠΈ LLVM Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΡ
ΠΈΠ·Π»ΠΈΡΠ½ΡΡ ΡΠ°Π·Π΄ΡΡΠΎΡΡΡ, Π½ΠΈΠ·ΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΡΡΡΠ΄Π½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ MIR ΠΏΠΎΠΏΡΡΠ°Π»ΠΈΡΡ ΡΠ΅ΡΠΈΡΡ ΡΡΠΈ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅Π»ΠΈ:
- ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π² MIR Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π² 100 ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Π² GCC;
- JIT Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ MIR Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΌ ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 15 ΡΡΡΡΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°;
- ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ MIR Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JIT Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π½Π° 30% ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π‘ΠΈ-ΠΊΠΎΠ΄Π° Π² GCC (Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠΌΠΈ «-O2»);
- Π‘ΡΠ°Π΄ΠΈΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π² 100 ΡΠ°Π· ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ;
- MIR-ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ JIT Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² 100 ΡΠ°Π· ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π² GCC ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
Π ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ MIR Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅Π»ΠΈ: ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² MIR Π±ΡΡΡΡΠ΅Π΅ «GCC -O2» Π² 178 ΡΠ°Π·, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΡΡΠ°ΡΡ ΠΎΡ Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° 6%, ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° ΠΌΠ΅Π½ΡΡΠ΅ Π² 144 ΡΠ°Π·Π°, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ MIR JIT ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 16 ΡΡΡΡΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru