Hoʻokumu ʻo Red Hat i ka mea hōʻuluʻulu MIR JIT

Ma ka Pāpale ʻulaʻula hoʻomohala ʻia mea hōʻuluʻulu JIT māmā hou ME, e hōʻoiaʻiʻo ana i ka hoʻokō ʻana i ke code i hoʻololi mua ʻia i kahi hōʻike waena MIR (Medium Internal Representation, ʻaʻole e huikau me kekahi hōʻike waena waena. ME (i waena waena IR), hoʻohana ʻia i ka Rust compiler). Manaʻo ka papahana e hāʻawi i kahi hoʻolālā no ka hoʻokō ʻana i nā unuhi unuhi wikiwiki a me ka JIT. Ua kākau ʻia ke code papahana ma C a mahele ʻia e ma lalo o ka laikini MIT.

I kēia manawa o ka hoʻomohala ʻana, mākaukau nā mea unuhi i ka hōʻike waena o MIR ʻōlelo C a me ka bitcode LLVM (Bitcode), akā i ka wā e hiki mai ana ua hoʻolālā ʻia e hoʻokō i ka hiki ke hana i ka MIR no WebAssembly, Java bytecode, CIL (ʻŌlelo Kūwaena Maʻamau), Rust a me C++. Ke kūkuluʻia nei ka papahana e kekahi o nā mea hoʻomohala engine JIT MJIT, hoʻohana ʻia ma Ruby. ʻO ka mea mua, ua hoʻolālā ʻia ʻo JIT e pili ana i ka MIR ʻO Cruby и MRuby. I ka wā e hiki mai ana, hiki ke hoʻopaʻa i ka GCC e hoʻohana i ka MIR.

Hoʻokumu ʻo Red Hat i ka mea hōʻuluʻulu MIR JIT

Hiki ke hōʻike ʻia ke code MIR waena ma ke ʻano binary a me ka kikokikona (heluhelu). Hiki ke hoʻokō ʻia kēia code ma kahi unuhi ʻōlelo a hiki ke hana ʻia ke code mīkini ma muli o ia (x86_64, ma nā hoʻolālā ARM64, PPC64 a me MIPS64). Hiki nō hoʻi ke hana i ka hoʻololi ʻana - mai MIR a CIL, Java bytecode, WebAssembly a me C code.

Ma waena o nā hiʻohiʻona o ka MIR, paʻa paʻa, kākoʻo no nā modula a me nā hana, ka hāʻawi ʻana i kahi hoʻonohonoho o nā ʻōlelo aʻoaʻo no ka hoʻololi ʻana i ke ʻano, ka hoʻohālikelike, ka helu helu a me nā hana loiloi, branching, etc. Hiki ke hoʻouka ʻia nā modula, kahi pūʻulu o nā hana i hoʻololi ʻia i ka format MIR, ma ke ʻano o nā hale waihona puke, a hiki ke hoʻouka i ka code C waho.

Hoʻokumu ʻo Red Hat i ka mea hōʻuluʻulu MIR JITHoʻokumu ʻo Red Hat i ka mea hōʻuluʻulu MIR JIT

ʻO ka pōmaikaʻi nui o ka hoʻokō ʻana i ka code intermediate ma JIT ma kahi o ka hoʻohui ʻana i nā faila hiki ke hoʻokō ʻia ʻo ia ka hiki ke hana i nā faila compact i hiki ke hoʻokō ʻia me ka ʻole o ke kūkulu hou ʻana i nā hale hana ʻenehana like ʻole (x86, ARM, PPC, MIPS). No nā hale hana i kākoʻo ʻole ʻia, loaʻa kahi ʻano wehewehe, ʻo ia ka mea ma ka hihia o MIR he 6-10 mau manawa lohi ma mua o JIT.

Nā hemahema o nā mea hōʻuluʻulu JIT i kēia manawa
Ua ʻōlelo ʻia ʻo GCC a me LLVM he nui loa ka pehu, haʻahaʻa ka wikiwiki o ka hōʻuluʻulu ʻana, a paʻakikī hoʻi e hoʻokō i nā loiloi i hui ʻia no nā ʻōlelo papahana like ʻole. Ua ho'āʻo nā mea hoʻomohala MIR e hoʻoponopono i kēia
pilikia a hoʻonohonoho i nā pahuhopu:

  • ʻO ka hōʻuluʻulu ʻana ma MIR he 100 mau manawa ʻoi aku ka wikiwiki ma mua o GCC;
  • ʻO ka JIT no ka hoʻokō MIR pono e paʻa loa a loaʻa ma kahi o 15 tausani laina o ke code;
  • ʻO ka hoʻokō ʻana i ka MIR me ka hoʻohana ʻana iā JIT ʻaʻole pono e ʻoi aku ma mua o 30% ʻoi aku ka lohi ma mua o ka hana o kahi mea hoʻokō i hōʻuluʻulu ʻia mai ka code C like ma GCC (me ka "-O2" optimizations);
  • ʻO ka hoʻomaka ʻana ma mua o ka hoʻomaka ʻana o ka hoʻokō maoli ʻana he 100 mau manawa i emi iho;
  • Pono ka hōʻike MIR no JIT he 100 manawa ʻoi aku ka liʻiliʻi ma mua o ka mea hoʻokō i hōʻuluʻulu ʻia ma GCC.

I kona ʻano i kēia manawa, ʻoi aku ka nui o ka hoʻokō MIR ma mua o nā pahuhopu i hoʻonohonoho mua ʻia: ua hōʻike nā hoʻokolohua ʻo ka hana hoʻohui ʻana ma MIR he 2 mau manawa ʻoi aku ka wikiwiki ma mua o "GCC -O178", ʻo ka hana hoʻokō he 6% ma hope o ke code maoli, ka nui o ke code. he 144 mau manawa liʻiliʻi, ʻo ka hoʻokō MIR JIT he 16 tausani laina o ke code.

Hoʻokumu ʻo Red Hat i ka mea hōʻuluʻulu MIR JIT

Source: opennet.ru

E kūʻai i ka hoʻokipa hilinaʻi no nā pūnaewele me ka pale DDoS, nā kikowaena VPS VDS 🔥 E kūʻai i ka hoʻokipa pūnaewele hilinaʻi me ka pale DDoS, nā kikowaena VPS VDS | ProHoster