Red Hat ืžืคืชื—ืช ืžื”ื“ืจ MIR JIT

ื‘ืจื“ ื”ืื˜ ื”ืคื™ืชื•ื— ื‘ืขื™ืฆื•ืžื• ืžื”ื“ืจ JIT ืงืœ ืžืฉืงืœ ื—ื“ืฉ ืžื™ืจ, ื”ืžื‘ื˜ื™ื— ื‘ื™ืฆื•ืข ืฉืœ ืงื•ื“ ืฉื”ื•ืžืจ ื‘ืขื‘ืจ ืœื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื MIR (ื™ื™ืฆื•ื’ ืคื ื™ืžื™ ื‘ื™ื ื•ื ื™, ืœื ืœื”ืชื‘ืœื‘ืœ ืขื ื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื ืื—ืจ ืžื™ืจ (IR ื‘ืจืžื” ื‘ื™ื ื•ื ื™ืช), ื‘ืฉื™ืžื•ืฉ ื‘ืžื”ื“ืจ Rust). ืžื˜ืจืช ื”ืคืจื•ื™ืงื˜ ื”ื™ื ืœืกืคืง ืžืกื’ืจืช ืœื”ื˜ืžืขืช ืžืชื•ืจื’ืžื ื™ื ืžื”ื™ืจื™ื ื•ืงื•ืžืคืงื˜ื™ื™ื ื•-JIT. ืงื•ื“ ื”ืคืจื•ื™ืงื˜ ื›ืชื•ื‘ ื‘-C ื• ืžื•ืคืฅ ืขืœ ื™ื“ื™ ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT.

ื‘ืฉืœื‘ ื”ื ื•ื›ื—ื™ ืฉืœ ื”ืคื™ืชื•ื—, ืžืชืจื’ืžื™ื ืœื™ื™ืฆื•ื’ ื”ื‘ื™ื ื™ื™ื ืฉืœ MIR ืขืจื•ื›ื™ื ืฉืคืช ื’ ื•-bitcode Llvm (Bitcode), ืืš ื‘ืขืชื™ื“ ืžืชื•ื›ื ืŸ ืœื™ื™ืฉื ืืช ื”ื™ื›ื•ืœืช ืœื™ืฆื•ืจ MIR ืขื‘ื•ืจ WebAssembly, Java bytecode, CIL (ืฉืคืช ื‘ื™ื ื™ื™ื ื ืคื•ืฆื”), ื—ืœื•ื“ื” ื•-C++. ื”ืคืจื•ื™ืงื˜ ืžืคื•ืชื— ืขืœ ื™ื“ื™ ืื—ื“ ืžืžืคืชื—ื™ ืžื ื•ืขื™ JIT MJIT, ื‘ืฉื™ืžื•ืฉ ื‘ืจื•ื‘ื™. ืงื•ื“ื ื›ืœ, JIT ืžื‘ื•ืกืก ืขืœ MIR ืžืชื•ื›ื ืŸ ืœื”ื™ื•ืช ืžื™ื•ืฉื ืขื‘ื•ืจ ืงืจื•ื‘ื™ ะธ MRuby. ื‘ืขืชื™ื“, ื ื™ืชืŸ ื’ื ืœื”ืขื‘ื™ืจ ืืช GCC ืœืฉื™ืžื•ืฉ ื‘-MIR.

Red Hat ืžืคืชื—ืช ืžื”ื“ืจ MIR JIT

ื ื™ืชืŸ ืœื”ืฆื™ื’ ืืช ืงื•ื“ ื”-MIR ื”ื‘ื™ื ื™ื™ื ื‘ืฆื•ืจื” ื‘ื™ื ืืจื™ืช ื•ื˜ืงืกื˜ (ื ื™ืชืŸ ืœืงืจื™ืื”). ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืงื•ื“ ื–ื” ื‘ืžืชื•ืจื’ืžืŸ ื•ืœื™ืฆื•ืจ ืงื•ื“ ืžื›ื•ื ื” ืขืœ ื‘ืกื™ืกื• (x86_64, ื‘ืชื•ื›ื ื™ื•ืช ARM64, PPC64 ื•-MIPS64). ืืคืฉืจ ื’ื ืœื‘ืฆืข ืืช ื”ื”ืžืจื” ื”ื”ืคื•ื›ื” - ืž-MIR ืœ-CIL, Java bytecode, WebAssembly ื•ืงื•ื“ C.

ื‘ื™ืŸ ื”ืžืืคื™ื™ื ื™ื ืฉืœ MIR ื‘ื•ืœื˜ื•ืช ื”ืงืœื“ื” ืงืคื“ื ื™ืช, ืชืžื™ื›ื” ื‘ืžื•ื“ื•ืœื™ื ื•ืคื•ื ืงืฆื™ื•ืช, ืžืชืŸ ืกื˜ ื”ื•ืจืื•ืช ืœื”ืžืจืช ืกื•ื’, ื”ืฉื•ื•ืื”, ืคืขื•ืœื•ืช ืืจื™ืชืžื˜ื™ื•ืช ื•ืœื•ื’ื™ื•ืช, ื”ืกืชืขืคื•ืช ื•ื›ื•'. ื ื™ืชืŸ ืœื˜ืขื•ืŸ ืžื•ื“ื•ืœื™ื, ื”ื›ื•ืœืœื™ื ืกื˜ ืฉืœ ืคื•ื ืงืฆื™ื•ืช ืฉื”ื•ืžืจื• ืœืคื•ืจืžื˜ MIR, ื‘ืฆื•ืจื” ืฉืœ ืกืคืจื™ื•ืช, ื•ื™ื›ื•ืœื™ื ื’ื ืœื˜ืขื•ืŸ ืงื•ื“ C ื—ื™ืฆื•ื ื™.

Red Hat ืžืคืชื—ืช ืžื”ื“ืจ MIR JITRed Hat ืžืคืชื—ืช ืžื”ื“ืจ MIR JIT

ื”ื™ืชืจื•ืŸ ื”ืžืจื›ื–ื™ ืฉืœ ื‘ื™ืฆื•ืข ืงื•ื“ ื‘ื™ื ื™ื™ื ื‘-JIT ื‘ืžืงื•ื ืงื•ืžืคื™ืœืฆื™ื” ืœืงื‘ืฆื™ ื”ืคืขืœื” ืžืงื•ืจื™ื™ื ื”ื•ื ื”ื™ื›ื•ืœืช ืœื™ืฆื•ืจ ืงื‘ืฆื™ื ืงื•ืžืคืงื˜ื™ื™ื ืฉื ื™ืชืŸ ืœื”ืคืขื™ืœ ืžื‘ืœื™ ืœื‘ื ื•ืช ืžื—ื“ืฉ ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื—ื•ืžืจื” ืฉื•ื ื•ืช (x86, ARM, PPC, MIPS). ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืฉืื™ื ืŸ ื ืชืžื›ื•ืช, ื–ืžื™ืŸ ืžืฆื‘ ืคืจืฉื ื•ืช, ืฉื‘ืžืงืจื” ืฉืœ MIR ืื™ื˜ื™ ืคื™ 6-10 ืž-JIT.

ื—ืกืจื•ื ื•ืช ืฉืœ ืžื”ื“ืจื™ื ืงื™ื™ืžื™ื ืฉืœ JIT
ืื•ืžืจื™ื ื›ื™ GCC ื•-LLVM ื ืคื•ื—ื™ื ืžื“ื™, ื‘ืขืœื™ ืžื”ื™ืจื•ืช ืงื•ืžืคื™ืœืฆื™ื” ื ืžื•ื›ื” ื•ืงืฉื” ืœื™ื™ืฉื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืžืฉื•ืœื‘ื•ืช ืขื‘ื•ืจ ืฉืคื•ืช ืชื›ื ื•ืช ืฉื•ื ื•ืช. ืžืคืชื—ื™ MIR ื ื™ืกื• ืœืคืชื•ืจ ืืช ืืœื”
ื‘ืขื™ื•ืช ื•ื”ืฆื‘ืช ื™ืขื“ื™ื:

  • ื”ื™ื“ื•ืจ ื‘-MIR ืฆืจื™ืš ืœื”ื™ื•ืช ืžื”ื™ืจ ืœืคื—ื•ืช ืคื™ 100 ืžืืฉืจ ื‘-GCC;
  • ื”-JIT ืœื‘ื™ืฆื•ืข MIR ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืงื•ืžืคืงื˜ื™ ืžืื•ื“ ื•ืœื›ืœื•ืœ ื›-15 ืืœืฃ ืฉื•ืจื•ืช ืงื•ื“;
  • ื‘ื™ืฆื•ืข MIR ื‘ืืžืฆืขื•ืช JIT ืœื ืฆืจื™ืš ืœื”ื™ื•ืช ืื™ื˜ื™ ื™ื•ืชืจ ืž-30% ืžื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืงื•ื‘ืฅ ื”ืคืขืœื” ืฉื”ื•ื™ื“ื•ืจ ืžืื•ืชื• ืงื•ื“ C ื‘-GCC (ืขื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช "-O2");
  • ืฉืœื‘ื™ ื”ืืชื—ื•ืœ ืœืคื ื™ ืชื—ื™ืœืช ื”ื‘ื™ืฆื•ืข ื‘ืคื•ืขืœ ืฆืจื™ื›ื™ื ืœืงื—ืช ืคื™ 100 ืคื—ื•ืช ื–ืžืŸ;
  • ื™ื™ืฆื•ื’ ื”-MIR ืขื‘ื•ืจ JIT ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืงื˜ืŸ ืคื™ 100 ืžืงื•ื‘ืฅ ื”ื”ืคืขืœื” ืฉืงื•ืžืคื™ืœื“ ื‘-GCC.

ื‘ืžืชื›ื•ื ืชื• ื”ื ื•ื›ื—ื™ืช, ื”ื˜ืžืขืช MIR ืžืงื“ื™ืžื” ื‘ืžื•ื‘ื ื™ื ืจื‘ื™ื ืืช ื”ื™ืขื“ื™ื ืฉื”ื•ื’ื“ืจื• ื‘ืชื—ื™ืœื”: ื‘ื“ื™ืงื•ืช ื”ืจืื• ืฉื‘ื™ืฆื•ืขื™ ื”ืงื•ืžืคื™ืœืฆื™ื” ื‘-MIR ืžื”ื™ืจื™ื ืคื™ 2 ืž-"GCC -O178", ื‘ื™ืฆื•ืขื™ ื”ื‘ื™ืฆื•ืข ื ืžืฆืื™ื ื‘-6% ืžืื—ื•ืจื™ ื”ืงื•ื“ ื”ืžืงื•ืจื™, ื’ื•ื“ืœ ื”ืงื•ื“ ืงื˜ืŸ ืคื™ 144, ื™ื™ืฉื•ื MIR JIT ื”ื•ื 16 ืืœืฃ ืฉื•ืจื•ืช ืงื•ื“.

Red Hat ืžืคืชื—ืช ืžื”ื“ืจ MIR JIT

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”