wasm3-ի առաջին թողարկումը՝ արագ WebAssembly թարգմանիչ

Հասանելի է առաջին հրատարակությունը wasm3, շատ արագ WebAssembly միջանկյալ կոդերի թարգմանիչ, որը հիմնականում նախատեսված է միկրոկառավարիչների և հարթակներում WebAssembly հավելվածները գործարկելու համար, որոնք չունեն JIT ներդրում WebAssembly-ի համար, չունեն բավարար հիշողություն JIT գործարկելու համար կամ չեն կարող ստեղծել JIT-ի իրականացման համար անհրաժեշտ գործարկվող հիշողության էջեր: . Ծրագրի կոդը գրված է C և տարածվում է MIT լիցենզիայի ներքո:

Wasm3 փոխանցում է Թեստեր համատեղելի է WebAssembly 1.0 ճշգրտման հետ և կարող է օգտագործվել բազմաթիվ WASI հավելվածներ գործարկելու համար՝ ապահովելով միայն 4-5 անգամ ցածր կատարողականություն, քան JIT շարժիչները (բարձրացնել, ամբարձիչ) և 11.5 անգամ ավելի ցածր, քան հայրենի կոդի կատարումը: Երբ համեմատվում է այլ WebAssembly թարգմանիչների հետ (wac, կյանք, wasm-micro-runtime), wasm3-ը 15.8 անգամ ավելի արագ է ստացվել։

Wasm3-ը գործարկելու համար ձեզ հարկավոր է 64 Կբ կոդային հիշողություն և 10 Կբ օպերատիվ հիշողություն, որը թույլ է տալիս նախագիծն օգտագործել WebAssembly-ում կազմված հավելվածները գործարկելու համար։ միկրոկոնտրոլերներ, ինչպիսիք են Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) և ATmega1284, ինչպես նաև x86, x64, ARM, MIPS, RISC-V և Xtensa ճարտարապետությունների վրա հիմնված տախտակների և համակարգիչների վրա: Աջակցվող օպերացիոն համակարգերը ներառում են Linux (ներառյալ OpenWRT-ի վրա հիմնված երթուղիչները), Windows, macOS, Android և iOS: Հնարավոր է նաև wasm3-ը կոմպիլացնել WebAssembly միջանկյալ կոդի մեջ՝ թարգմանիչը բրաուզերում գործարկելու կամ ներկառուցված կատարման համար (ինքնահոսթինգ):

Բարձր կատարողականությունը ձեռք է բերվում թարգմանչի մեջ տեխնոլոգիայի կիրառմամբ Massey Meta Machine (M3), որը բայթկոդը փոխակերպում է ավելի արդյունավետ կեղծ մեքենաների կոդերի ստեղծման օպերացիաների՝ նվազեցնելու բայթկոդերի վերծանման ծախսերը և փոխակերպում է ստեկի վրա հիմնված վիրտուալ մեքենայի կատարման մոդելը ռեգիստրի վրա հիմնված ավելի արդյունավետ մոտեցման: M3-ում գործողությունները C ֆունկցիաներ են, որոնց արգումենտները վիրտուալ մեքենաների ռեգիստրներ են, որոնք կարող են քարտեզագրվել պրոցեսորի ռեգիստրներին: Օպտիմալացման գործողությունների հաճախակի հանդիպող հաջորդականությունները վերածվում են ամփոփ գործողությունների:

Բացի այդ, կարող եք նշել հետազոտության արդյունքները բաշխում
WebAssembly համացանցում: Ըստ Alexa վարկանիշների 948 հազար ամենահայտնի կայքերի վերլուծությունից հետո հետազոտողները պարզել են, որ WebAssembly-ն օգտագործվում է 1639 կայքերում (0.17%), այսինքն. յուրաքանչյուր 1 կայքից 600-ում: Ընդհանուր առմամբ կայքերում ներբեռնվել են 1950 WebAssembly մոդուլներ, որոնցից 150-ը եզակի են։ WebAssembly-ի օգտագործման շրջանակը դիտարկելիս արվել են հիասթափեցնող եզրակացություններ՝ ավելի քան 50% դեպքերում WebAssembly-ն օգտագործվել է վնասակար նպատակներով, օրինակ՝ կրիպտոարժույթի մայնինգի համար (55.7%) և վնասակար սկրիպտների կոդը թաքցնելու համար (0.2%)։ . WebAssembly-ի օրինական օգտագործումը ներառում է գրադարանների գործարկումը (38.8%), խաղերի ստեղծումը (3.5%) և մաքսային ոչ JavaScript կոդի գործարկումը (0.9%): Դեպքերի 14.9%-ում WebAssembly-ն օգտագործվել է օգտատերերի նույնականացման (մատնահետք) միջավայրը վերլուծելու համար:

wasm3-ի առաջին թողարկումը՝ արագ WebAssembly թարգմանիչ

Source: opennet.ru

Добавить комментарий