CPU cache yekubvisa kurwiswa kwakaitwa muwebhu browser isina JavaScript

Chikwata chevaongorori kubva kumayunivhesiti akati wandei eAmerica, Israel neAustralia vakagadzira kurwisa katatu kunomhanya pamabhurawuza kuti vatore ruzivo nezve zviri mukati me processor cache. Imwe nzira inoshanda mumabhurawuza asina JavaScript, uye dzimwe mbiri dzinopfuura dziripo nzira dzedziviriro kubva kudivi-chiteshi kurwisa, kusanganisira iyo inoshandiswa muTor browser uye DeterFox. Iyo kodhi yekuratidzira kurwiswa, pamwe neiyo sevha zvikamu zvinodiwa pakurwiswa, zvinoburitswa paGitHub.

Kuongorora zviri mukati mecache, kurwiswa kwese kunoshandisa iyo Prime + Probe nzira, iyo inosanganisira kuzadza cache neyakajairwa seti yehunhu uye kuona shanduko nekuyera nguva yekuwana kwavari kana uchiizadza zvakare. Kupfuura nzira dzekuchengetedza dziripo mumabhurawuza dzinokanganisa kuyerwa kwenguva, mune mbiri sarudzo, kukwidzwa kunoitwa kuDNS kana WebSocket server inodzorwa neanorwisa, inochengeta irogi yenguva yezvikumbiro zvakagamuchirwa. Mune imwe embodiment, yakatarwa DNS yekupindura nguva inoshandiswa sereferensi yenguva.

Zviyero zvakaitwa nekunze kweDNS kana maSeva eWebSocket, uchishandisa dhizaini yakavakirwa pakudzidza kwemuchina, zvaive zvakakwana kufanotaura hunhu nekurongeka kwekusvika 98% mune yakanyanya kunaka mamiriro (avhareji 80-90%). Nzira dzekurwisa dzakaedzwa pamapuratifomu akasiyana siyana (Intel, AMD Ryzen, Apple M1, Samsung Exynos) uye dzakaratidza kuve dzepasirese.

CPU cache yekubvisa kurwiswa kwakaitwa muwebhu browser isina JavaScript

Musiyano wekutanga weDNS Mujaho wekurwiswa unoshandisa kirasi yekushandisa yePrime + Probe nzira uchishandisa JavaScript arrays. Misiyano inowira pasi pakushandiswa kwekunze kweDNS-based timer uye onerror handler, iyo inotangwa kana kuedza kunoitwa kutakura chifananidzo kubva kune isipo domain. Yekunze timer inobvumira kurwiswa kwePrime + Probe pamabhurawuza anodzika kana kudzima zvachose kupinda kune JavaScript nguva.

Kune sevha yeDNS iri pane imwecheteyo Ethernet network, iko kurongeka kweiyo timer kunofungidzirwa kunge ingangoita 2 ms, iyo inokwana kuita kurwisa-chiteshi kurwisa (kufananidza, iko kurongeka kweiyo yakajairwa JavaScript timer muTor Browser ndiyo. yakaderedzwa kusvika ku100 ms). Pakurwiswa, kutonga pamusoro peDNS server hakudiwi, sezvo nguva yekuuraya yekushanda yakasarudzwa kuitira kuti nguva yekupindura kubva kuDNS ishande sechiratidzo chekupedzwa kwekutanga cheki (zvichienderana nekuti iyo onerror handler yakakonzerwa. kare kana kuti gare gare, mhedziso inotorwa pamusoro pekumhanya kwecheki kushanda ne cache) .

Yechipiri yekurwisa nzira, "String and Sock", ine chinangwa chekupfuura nzira dzekuchengetedza dzinorambidza yakaderera-chikamu kushandiswa kwearrays muJavaScript. Panzvimbo pezvirongwa, String neSock inoshandisa maoperation patambo dzakakura kwazvo, saizi yaro inosarudzwa kuitira kuti shanduko ivhare iyo yese LLC cache (Last level cache). Tevere, uchishandisa iyo indexOf () basa, diki tambo inotsvakwa mutambo, iyo inotanga isipo mumutsara tambo, i.e. basa rekutsvaga rinoguma nekudzokorora pamusoro petambo yese. Sezvo saizi yemutsetse ichienderana nehukuru hweiyo LLC cache, scanning inobvumidza iwe kuti uite cache cheki oparesheni pasina kushandura arrays. Kuyera kunonoka, panzvimbo yeDNS, kufona kunoitwa kuWebSocket server inodzorwa neanorwisa - isati yapera uye mushure mekuita basa rekutsvaga, mibvunzo inotumirwa mumutsara, zvichibva pane iyo sevha inoverengera kunonoka kunoshandiswa kuongorora cache. zviri mukati.

Musiyano wechitatu we "CSS PP0" kurwisa unoitwa kuburikidza neHTML neCSS, uye inogona kushanda mumabhurawuza ane JavaScript yakaremara. Iyo nzira yakafanana ne "String and Sock", asi haina kusungirirwa kuJavaScript. Munguva yekurwiswa, seti yevanosarudza CSS inogadzirwa iyo yekutsvaga nemask. Tambo huru yekutanga inozadza cache inoiswa nekugadzira div tag ine zita rakakura kwazvo rekirasi. Mukati mune seti yemamwe div ane zviziviso zvawo. Imwe neimwe yeaya ma divs ane maitiro ayo ane anosarudza anotsvaga substring. Paunenge uchipa peji, bhurawuza rinotanga kuyedza kugadzirisa iyo yemukati divs, izvo zvinoguma nebasa rekutsvaga pamutsara wakakura. Kutsvaga kunoitwa uchishandisa mask yakashaikwa nemaune uye inotungamira kukudzokorora pamusoro pemutsara wese, mushure mezvo mamiriro ekuti "kwete" anotangwa uye kuyedza kunoitwa kurodha mufananidzo wekumashure unoreva madomasi asina kurongeka: #pp:not([class*=’xjtoxg’]) #s0 {background-image: url(«https://qdlvibmr.helldomain.oy.ne.ro»);} #pp:not([class*=’gzstxf’]) #s1 {background-image: url(«https://licfsdju.helldomain.oy.ne.ro»);} … X X ...

Subdomains inoshandirwa neanorwisa DNS server, iyo inogona kuyera kunonoka mukugamuchira zvikumbiro. Iyo DNS server inoburitsa NXDOMAIN kune zvese zvikumbiro uye inochengeta irogi yenguva chaiyo yekukumbira. Nekuda kwekugadzirisa seti ye divs, anorwisa DNS server inogamuchira akateedzana zvikumbiro, kunonoka pakati kunoenderana nemhedzisiro yekutarisa zvirimo mucache.

CPU cache yekubvisa kurwiswa kwakaitwa muwebhu browser isina JavaScript


Source: opennet.ru

Voeg