Anayambitsa njira yatsopano yodziwira makina obisika ndi osatsegula

Gulu la ofufuza ochokera ku Graz University of Technology (Austria), yomwe kale idadziwika kuti ikupanga njira zowukira MDS, Chidera ΠΈ Woponya nyundo, kuvumbuluka zambiri za njira yatsopano yowunikira ya chipani chachitatu yomwe imakupatsani mwayi wodziwa mtundu weniweni wa msakatuli, makina ogwiritsira ntchito omwe amagwiritsidwa ntchito, kapangidwe ka CPU, komanso kugwiritsa ntchito zowonjezera kuti muthane ndi zizindikiritso zobisika.

Kuti mudziwe magawowa, ndikwanira kukhazikitsa JavaScript code yokonzedwa ndi ofufuza mu msakatuli. M'malo mwake, njirayo ingagwiritsidwe ntchito osati ngati gwero lowonjezera lachidziwitso cha ogwiritsa ntchito mwachindunji, komanso kudziwa magawo a chilengedwe chazomwe zikugwiritsidwa ntchito potengera zomwe zikuchitika, poganizira za OS, zomangamanga, ndi osatsegula. Njirayi ndiyothandizanso mukamagwiritsa ntchito asakatuli omwe ali ndi njira zotsekereza zobisika, monga Tor Browser. Code source prototype code yokhala ndi njira lofalitsidwa pansi pa layisensi ya MIT.

Kutsimikiza kumapangidwa pamaziko a kugawa kwazinthu zamtundu wa asakatuli osiyanasiyana mu JavaScript ndi mawonekedwe a nthawi yogwira ntchito, kutengera mawonekedwe a JIT, CPU ndi njira zogawira kukumbukira. Kutanthauzira katundu kumachitika popanga mndandanda wazinthu zonse zomwe zikupezeka ku JavaScript. Monga momwe zinakhalira, kuchuluka kwa zinthu kumagwirizana mwachindunji ndi injini ya osatsegula ndi mtundu wake.

ntchito getProperties(o) {
zotsatira = [];
pamene (o !== null) {
zotsatira = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
zotsatira zobwezera;
}

Mwachitsanzo, kwa Firefox, chithandizo cha katundu wa 2247 chimalengezedwa m'zolembedwa, pamene chiwerengero chenicheni cha katundu wina, poganizira zosalembedwa, ndi 15709 (mu Tor Browser - 15639), pa Chrome 2698 katundu amalengezedwa, koma 13570 amaperekedwa (mu Chrome ya Android - 13119). Chiwerengero ndi kufunikira kwa katundu kumasiyanasiyana kutengera mtundu wa msakatuli komanso pamakina osiyanasiyana ogwiritsira ntchito.

Makhalidwe ndi kupezeka kwa zinthu zina zitha kugwiritsidwa ntchito kudziwa mtundu wa OS. Mwachitsanzo, ku Kubuntu window.innerWidth katundu wakhazikitsidwa ku 1000, ndipo mu Windows 10 imayikidwa ku 1001. Pa Windows, katundu wawindo.navigator.activeVRDisplays alipo, koma pa Linux palibe. Ma foni ambiri enieni amaperekedwa kwa Android, koma palibe zenera.SharedWorker. Kuti muzindikire makina ogwiritsira ntchito, akulangizidwanso kugwiritsa ntchito kusanthula kwa magawo a WebGL, zomwe zimatengera madalaivala. Kuphatikiza apo, kuyimba WEBGL_debug_renderer_infoextension kumakupatsani mwayi wodziwa zambiri za injini ya OpenGL, yomwe ndi yosiyana pamakina aliwonse.

Kuti mudziwe CPU, kuwunika kwa kusiyana kwa nthawi yophatikizira mitundu yosiyanasiyana ya ma code kumagwiritsidwa ntchito, kukonzedwa komwe kumadalira kamangidwe ka malangizowo, poganizira za khalidwe la JIT (zimatsimikiziridwa kuti ndi ma CPU angati omwe amalembetsa. adzakhudzidwa ndipo nthawi zina JIT ipanga ma code abwino ndi kukhathamiritsa komanso kuphatikizira malangizo owonjezera, ndipo pomwe ayi). Kuti mudziwe mtundu wa dongosolo logawira kukumbukira ndi makina ogwiritsira ntchito, kusiyana kwa nthawi yogawa kukumbukira kwazinthu zosiyanasiyana kumayesedwanso, komwe kungagwiritsidwe ntchito kuweruza kukula kwa midadada yokumbukira.

Magawo omwe amatsimikiziridwa panthawi yolemba script amafananizidwa ndi zomwe zimafanana ndi zomwe zidayesedwa kale. Pakuyesa, njira yomwe idapangidwa idapangitsa kuti zitheke kudziwa bwino malo 40 oyeserera, kudziwa matembenuzidwe a osatsegula omwe amagwiritsidwa ntchito, wopanga CPU, makina ogwiritsira ntchito, komanso ngati akuyenda pazida zenizeni kapena pamakina enieni.

Payokha, kuthekera kwa kufotokozera zowonjezera za msakatuli komanso makonda owonjezera pawokha, kuphatikiza zowonjezera zomwe zidapangidwa kuti ziletse njira zozindikiritsa zobisika kapena kusakatula kwachinsinsi, zimadziwika. Pankhani ya njira yomwe ikuperekedwa, zowonjezera zoterezi zimakhala gwero lina la deta kuti lizindikire. Zowonjezera zimatsimikiziridwa kupyolera mukuwunika kwa kusokonezeka kwa magawo a chilengedwe choyambirira chomwe chinayambitsidwa ndi zowonjezera.

Mwa njira zina zozindikiritsira, ndizotheka kuzindikira kuganiziridwa kwa deta yosalunjika ngati chophimba chophimba, mndandanda wamitundu yothandizidwa ya MIME, zosankha zamutu zamutu (HTTP / 2 ΠΈ HTTPS), kusanthula kwakhazikitsidwa mapulagini ndi mafonti, kupezeka kwa ma API ena a Webusaiti okhudzana ndi makadi amakanema Mawonekedwe kupereka ndi WebGL ndi Chinsalu, kusokoneza ndi CSS, kusanthula kwa magwiridwe antchito ndi mbewa ΠΈ kiyibodi.

Source: opennet.ru

Kuwonjezera ndemanga