Puisano e ntle le Cliff Click, ntate oa pokello ea JIT Java

Puisano e ntle le Cliff Click, ntate oa pokello ea JIT JavaCliff Click - CTO ea Cratus (li-sensor tsa IoT bakeng sa ntlafatso ea ts'ebetso), mothehi le mothehi-'moho oa li-startups tse 'maloa (ho kenyeletsoa Rocket Realtime School, Neurensic le H2O.ai) tse nang le menyetla e mengata ea ho tsoa e atlehileng. Cliff o ngotse moqapi oa hae oa pele a le lilemo li 15 (Pascal bakeng sa TRS Z-80)! O tsebahala haholo ka mosebetsi oa hae ho C2 ho Java (Leoatle la Nodes IR). Moqapi enoa o bontšitse lefats'e hore JIT e ka hlahisa khoutu ea boleng bo holimo, e leng e 'ngoe ea mabaka a ho hlaha ha Java e le e' ngoe ea liforomo tse ka sehloohong tsa software ea morao-rao. Joale Cliff o ile a thusa Azul Systems ho haha ​​​​mahare a mantlha a 864 ka software e hloekileng ea Java e tšehetsang GC e emisa qubu ea 500-gigabyte ka har'a 10 milliseconds. Ka kakaretso, Cliff o ile a khona ho sebetsa likarolong tsohle tsa JVM.

 
Habrapost ena ke puisano e ntle le Cliff. Re tla bua ka lihlooho tse latelang:

  • Phetolelo ho optimizations ea boemo bo tlase
  • Mokhoa oa ho etsa refactoring e kholo
  • Mohlala oa litšenyehelo
  • Koetliso ea boemo bo tlase ba ho ntlafatsa
  • Mehlala e sebetsang ea ntlafatso ea ts'ebetso
  • Ke hobane'ng ha u iketsetsa puo ea lenaneo
  • Mosebetsi oa Moenjiniere oa Ts'ebetso
  • Mathata a Theknoloji
  • Hanyenyane ka kabo ea ngoliso le li-multi-cores
  • Qholotso e kholo bophelong

Lipuisano li etsoa ke:

  • Andrey Satarin ho tsoa ho Amazon Web Services. Mosebetsing oa hae, o ile a khona ho sebetsa mererong e fapaneng ka ho feletseng: o ile a leka database ea NewSQL e ajoang ho Yandex, mokhoa oa ho lemoha leru Kaspersky Lab, papali ea batho ba bangata ho Mail.ru le tšebeletso ea ho bala litheko tsa lichelete tsa kantle ho naha ho Deutsche Bank. Ke thahasella ho lekola litsamaiso tse kholo tsa morao-rao le tse ajoang.
  • Vladimir Sitnikov ho tsoa ho Netcracker. Lilemo tse leshome tsa mosebetsi mabapi le ts'ebetso le scalability ea NetCracker OS, software e sebelisoang ke basebetsi ba telecom ho iketsetsa mekhoa ea tsamaiso ea lisebelisoa le lisebelisoa tsa marang-rang. Ke khahlehela litaba tsa ts'ebetso ea Java le Oracle Database. Sengoli sa lintlafatso tse fetang leshome le metso e 'meli ho mokhanni oa semmuso oa PostgreSQL JDBC.

Phetolelo ho optimizations ea boemo bo tlase

Andrei: U lebitso le leholo lefats'eng la pokello ea JIT, Java, le mosebetsi oa ts'ebetso ka kakaretso, na ha ho joalo? 

Cliff: Ho joalo!

Andrei: Ha re qaleng ka lipotso tse akaretsang mabapi le mosebetsi oa ts'ebetso. U nahana'ng ka khetho lipakeng tsa ntlafatso ea maemo a holimo le a tlase joalo ka ho sebetsa maemong a CPU?

Cliff: E, ntho e 'ngoe le e' ngoe e bonolo mona. Khoutu e potlakileng ke e sa sebetseng. Ka hona, kamehla o hloka ho qala ho tloha boemong bo phahameng, ho sebetsa ho li-algorithms. O notation e betere e tla otla O notation e mpe le ho feta, ntle le haeba li-constants tse ngata tse lekaneng li kenella. Lintho tsa boemo bo tlase li ea qetellong. Ka tloaelo, haeba u ntlafalitse stack ea hau hantle ka ho lekana 'me ho ntse ho na le lintho tse ling tse khahlisang tse setseng, ke boemo bo tlase. Empa u ka qala joang ho tloha boemong bo phahameng? U tseba joang hore ho entsoe mosebetsi o lekaneng oa boemo bo phahameng? Hantle ... ha ho joalo. Ha ho na litlolo tse lokiselitsoeng. U hloka ho utloisisa bothata, u etse qeto ea hore na u tla etsa eng (e le hore u se ke ua nka mehato e sa hlokahaleng nakong e tlang) ebe u ka senola profil, e ka buang ntho e molemo. Ka nako e 'ngoe, u hlokomela hore u lahlile lintho tse sa hlokahaleng mme ke nako ea ho etsa tokiso e tlase ea boemo bo tlase. Ka sebele ena ke mofuta o khethehileng oa bonono. Ho na le batho ba bangata ba etsang lintho tse sa hlokahaleng, empa ba tsamaea ka potlako hoo ba se nang nako ea ho tšoenyeha ka tlhahiso. Empa sena ke ho fihlela potso e hlaha ka mokhoa o hlakileng. Hangata 99% ea nako ha ho motho ea tsotellang seo ke se etsang, ho fihlela nako eo ntho ea bohlokoa e hlahang tseleng e mahlonoko eo ho seng motho ea e tsotellang. Mona motho e mong le e mong o qala ho u soma ka "hobaneng e sa sebetse hantle ho tloha qalong." Ka kakaretso, kamehla ho na le ho hong ho ntlafatsa ts'ebetsong. Empa 99% ea nako ha u na tataiso! U ntse u leka ho etsa hore ntho e sebetse 'me ha u ntse u tsoela pele u fumana hore na ke efe ea bohlokoa. U ke ke ua tseba esale pele hore sengoathoana sena se hloka ho phethahala, ka hona, ha e le hantle, u tlameha ho ba ea phethahetseng nthong e 'ngoe le e' ngoe. Empa sena ha se khonehe, 'me u se ke ua se etsa. Kamehla ho na le lintho tse ngata tse lokelang ho lokisoa - 'me ke ntho e tloaelehileng.

Mokhoa oa ho etsa refactoring e kholo

Andrei: U sebetsa joang mosebetsing? Ena ke bothata bo fapaneng. Ka mohlala, na u kile ua tlameha ho sebetsana le mathata a hlahang mateanong a mesebetsi e mengata e teng?

Cliff: Ke leka ho e qoba. Haeba ke tseba hore ts'ebetso e tla ba taba, ke nahana ka eona pele ke qala ho kenya likhoutu, haholo-holo ka meralo ea data. Empa hangata u fumana tsena tsohle hamorao. 'Me joale u tlameha ho ea mehatong e feteletseng' me u etse seo ke se bitsang "ngola hape 'me u hlōle": u hloka ho tšoara sengoathoana se seholo se lekaneng. E meng ea khoutu e ntse e tla tlameha ho ngoloa bocha ka lebaka la mathata a ts'ebetso kapa ntho e 'ngoe. Ho sa tsotellehe hore na lebaka ke lefe la ho ngola khoutu hape, ho batla ho le molemo ho ngola sengoathoana se seholo ho feta sekhechana se senyenyane. Ka nako ena, e mong le e mong o qala ho thothomela ka tšabo: "Oho Molimo oa ka, u ke ke ua ama khoutu e ngata hakana!" Empa ha e le hantle, mokhoa ona o batla o sebetsa hantle haholo. U hloka hang-hang ho nka bothata bo boholo, u toroe selikalikoe se seholo ho e potoloha 'me u re: Ke tla ngola ntho e' ngoe le e 'ngoe ka har'a selikalikoe. Moeli o monyenyane haholo ho feta litaba tse ka hare ho oona tse lokelang ho nkeloa sebaka. 'Me haeba tlhaloso e joalo ea meeli e u lumella ho etsa mosebetsi ka hare ka ho phethahetseng, matsoho a hao a lokolohile, etsa seo u se batlang. Hang ha u utloisisa bothata, mokhoa oa ho ngola hape o bonolo haholo, kahoo nka ho loma haholo!
Ka nako e ts'oanang, ha u ngola hape 'me u hlokomela hore ts'ebetso e tla ba bothata, u ka qala ho tšoenyeha ka eona hang-hang. Hangata sena se fetoha lintho tse bonolo tse kang "se ke oa kopitsa data, laola data ka hohle kamoo u ka khonang, e etse hore e be nyane." Lingoliloeng tse kholo, ho na le mekhoa e tloaelehileng ea ho ntlafatsa ts'ebetso. 'Me hoo e ka bang kamehla li potoloha data.

Mohlala oa litšenyehelo

Andrei: Ho e 'ngoe ea li-podcasts u buile ka mefuta ea litšenyehelo maemong a tlhahiso. A na u ka hlalosa hore na u ne u bolela’ng ka see?

Cliff: Ka sebele. Ke hlahile nakong eo tšebetso ea processor e neng e le bohlokoa haholo. 'Me mehla ena e khutla hape - qetello ha e na bohlanya. Ke qalile ho phela mehleng ea mechine ea li-bit tse robeli; k'homphieutha ea ka ea pele e ne e sebetsa ka li-byte tse 256. Hantle-ntle li-byte. Ntho e 'ngoe le e 'ngoe e ne e le nyenyane haholo. Litaelo li ne li tlameha ho baloa, 'me ha re qala ho phahamisa pokello ea lipuo tsa mananeo, lipuo li ile tsa tsoela pele ho feta. Ho ne ho e-na le Assembler, joale Basic, C, le C ba hlokometse lintlha tse ngata, joalo ka kabo ea ngoliso le khetho ea litaelo. Empa ntho e 'ngoe le e' ngoe e ne e hlakile hantle moo, 'me haeba ke ne ke etsa pointer ho mohlala oa ho fetoha, ke ne ke tla fumana mojaro,' me litšenyehelo tsa taelo ena lia tsejoa. Thepa e hlahisa palo e itseng ea lipotoloho tsa mochini, kahoo lebelo la ho etsa lintho tse fapaneng le ka baloa feela ka ho kopanya litaelo tsohle tseo u tla li tsamaisa. E 'ngoe le e' ngoe ea ho bapisa / teko / lekala / mohala / mojaro / lebenkele le ka eketsoa mme la re: ke nako ea ts'ebetso ea hau. Ha u sebetsa ho ntlafatsa ts'ebetso, ka sebele u tla ela hloko hore na ke linomoro life tse lumellanang le lipotoloho tse nyenyane tse chesang. 
Empa hang ha o fetohela ho Java, Python le lintho tse tšoanang, o tloha kapele ho lisebelisoa tsa boemo bo tlase. Litšenyehelo tsa ho letsetsa getter ho Java ke bokae? Haeba JIT ho HotSpot e nepahetse inlined, e tla kenya, empa haeba e sa etsa sena, e tla ba mohala oa ts'ebetso. Kaha mohala o ho loop e chesang, e tla feta lintlafatso tse ling kaofela ho loop eo. Ka hona, litšenyehelo tsa sebele li tla ba holimo haholo. 'Me hang-hang u lahleheloa ke bokhoni ba ho sheba sengoathoana sa khoutu le ho utloisisa hore re lokela ho e phethahatsa ho latela lebelo la oache ea processor, memori le cache e sebelisitsoeng. Sena sohle se thahasellisa ha feela u hlile u kena tšebetsong.
Joale re iphumana re le maemong ao lebelo la processor le sa kang la eketseha ka lilemo tse leshome. Matsatsi a khale a khutlile! U ke ke ua hlola u tšepa ts'ebetso e ntle ea khoele e le 'ngoe. Empa haeba ka tšohanyetso u kena komporong e ts'oanang, ho thata haholo, motho e mong le e mong o u sheba joalo ka James Bond. Ho potlakisa ha makhetlo a leshome mona hangata ho etsahala libakeng tseo ho tsona motho a sentseng ntho e itseng. Concurrency e hloka mosebetsi o mongata. Ho fumana lebelo leo la XNUMXx, o hloka ho utloisisa mofuta oa litšenyehelo. Ke bokae le bokae? 'Me ho etsa sena, o hloka ho utloisisa hore na leleme le lumellana joang le lisebelisoa tsa motheo.
Martin Thompson o khethile lentsoe le letle bakeng sa blog ea hae Kutloelo-bohloko ea Mechini! U hloka ho utloisisa hore na hardware e tla etsa eng, hore na e tla e etsa joang, le hore na ke hobane'ng ha e etsa seo e se etsang pele. U sebelisa sena, ho bonolo ho qala ho bala litaelo le ho fumana hore na nako ea ho e etsa e ea kae. Haeba ha u na koetliso e nepahetseng, u ntse u batla katse e ntšo ka kamoreng e lefifi. Ke bona batho ba ntlafatsa ts'ebetso ka linako tsohle ba sa tsebeng hore na lihele li etsa eng. Ba utloa bohloko haholo 'me ha ba tsoele pele hakaalo. 'Me ha ke nka sekhechana se le seng sa khoutu, ke kene ka har'a li-hacks tse nyane' me u fumane lebelo la makhetlo a mahlano kapa a leshome, li tšoana le: hantle, ha ho na toka, re se re ntse re tseba hore u betere. E makatsang. Ke bua ka eng ... mohlala oa litšenyehelo ke hore na u ngola khoutu ea mofuta ofe le hore na e potlakile hakae ka karolelano setšoantšong se seholo.

Andrei: Hona u ka boloka molumo o joalo ka hloohong ea hau joang? Na see se finyelloa ka phihlelo e eketsehileng, kapa? Phihlelo e joalo e tsoa hokae?

Cliff: Che, ha kea fumana boiphihlelo ba ka ka tsela e bonolo. Ke ile ka kemisoa Kopanong morao matsatsing ao u neng u ka utloisisa taelo e 'ngoe le e' ngoe. E utloahala e le booatla, empa ho tloha ka nako eo sete ea litaelo ea Z80 esale e lula hloohong ea ka, mohopolong oa ka. Ha ke hopole mabitso a batho ka mor'a motsotso feela oa ho bua, empa ke hopola khoutu e ngotsoeng lilemo tse 40 tse fetileng. Hoa qabola, ho shebahala joalo ka syndrome "setsebi sa mahlale".

Koetliso ea boemo bo tlase ba ho ntlafatsa

Andrei: Na ho na le tsela e bonolo ea ho kena?

Cliff: Ee le che. Thepa eo re e sebelisang kaofela ha e so fetohe hakaalo ha nako e ntse e ea. Motho e mong le e mong o sebelisa x86, ntle le li-smartphones tsa Arm. Haeba u sa etse mofuta o itseng oa ho kenya ka thata, u ntse u etsa ntho e tšoanang. Ho lokile, latelang. Litaelo le tsona ha lia fetoha ka makholo a lilemo. U lokela ho ea ngola ho hong ho Assembly. Eseng haholo, empa ho lekane ho qala ho utloisisa. Ua bososela, empa ke bua ka botebo. U hloka ho utloisisa puisano pakeng tsa puo le hardware. Ka mor'a moo u lokela ho ea ngola hanyenyane 'me u etse moqapi o monyenyane oa ho bapala bakeng sa puo e nyenyane ea ho bapala. Ho tšoana le toy ho bolela hore e hloka ho etsoa ka nako e lekaneng. E ka ba bonolo haholo, empa e tlameha ho hlahisa litaelo. Ketso ea ho hlahisa taelo e tla u thusa ho utloisisa mohlala oa litšenyehelo bakeng sa borokho pakeng tsa khoutu ea boemo bo phahameng eo motho e mong le e mong a e ngolang le mochine oa mochine o sebetsang ho hardware. Lengolo lena le tla chesetsoa bokong nakong eo moqapi a ngoloang. Esita le moqapi o bonolo ka ho fetisisa. Ka mor'a moo, u ka qala ho sheba Java le taba ea hore lekhalo la eona la semantic le tebile haholo, 'me ho thata haholo ho haha ​​​​marokho holim'a eona. Java, ho thata le ho feta ho utloisisa hore na borokho ba rona bo fetohile bo botle kapa bo bobe, ke eng se tla etsa hore bo oe le hore na bo ke ke ba oa. Empa o hloka sebaka sa ho qala moo o shebang khoutu ebe o utloisisa: "ee, sena se lokela ho kengoa nako le nako." 'Me joale hoa etsahala hore ka linako tse ling sena se etsahala, ntle le boemo ha mokhoa o fetoha o moholo haholo,' me JIT e qala ho kenya ntho e 'ngoe le e' ngoe. Tšebetso ea libaka tse joalo e ka boleloa esale pele hang-hang. Hangata li-getters li sebetsa hantle, empa joale u sheba li-loops tse kholo tse chesang 'me u hlokomela hore ho na le mehala e meng ea ts'ebetso e phaphametseng moo e sa tsebeng seo ba se etsang. Bona ke bothata ba ts'ebeliso e atileng ea li-getter, lebaka leo ka lona li sa kenngoeng ka har'a mela ke hore ha ho hlake hore na ke li-getter. Haeba u na le khoutu e nyane haholo, u ka e hopola feela ebe u re: ena ke setter, 'me sena ke setter. Sebakeng se seholo sa khoutu, ts'ebetso e 'ngoe le e' ngoe e phela nalane ea eona, eo, ka kakaretso, e sa tsejoeng ke mang kapa mang. Setsebi se re re lahlehetsoe ke 24% ea nako ho loop e 'ngoe le ho utloisisa hore na loop ena e etsa eng, re hloka ho sheba tšebetso e' ngoe le e 'ngoe kahare. Ho ke ke ha khoneha ho utloisisa sena ntle le ho ithuta mosebetsi, 'me sena se liehisa mokhoa oa ho utloisisa ka botebo. Ke kahoo ke sa sebeliseng li-getter le li-setter, ke fihlile boemong bo bocha!
U ka fumana mohlala oa litšenyehelo hokae? Ho lokile, o ka bala se seng, ehlile ... Empa ke nahana hore tsela e molemohali ke ho etsa. Ho etsa compiler e nyane e tla ba tsela e molemohali ea ho utloisisa mohlala oa litšenyehelo le ho o kenya hloohong ea hau. Moqapi o monyane o tla tšoanela ho etsa lenaneo la microwave ke mosebetsi bakeng sa motho ea qalang. Ke bolela, haeba u se u ntse u e-na le tsebo ea ho etsa mananeo, joale seo se lokela ho lekana. Lintho tsena tsohle tse kang ho arola khoele eo u nang le eona e le mofuta o mong oa polelo ea algebra, ho ntša litaelo tsa ts'ebetso ea lipalo ho tloha moo ka tatellano e nepahetseng, ho nka litekanyetso tse nepahetseng ho tsoa ho li-registas - tsena tsohle li etsoa hang-hang. 'Me ha u ntse u e etsa, e tla hatisoa bokong ba hau. Ke nahana hore motho e mong le e mong oa tseba hore na moqapi o etsa eng. 'Me sena se tla fana ka kutloisiso ea mohlala oa litšenyehelo.

Mehlala e sebetsang ea ntlafatso ea ts'ebetso

Andrei: Ke eng hape eo u lokelang ho e ela hloko ha u sebetsa ka tlhahiso?

Cliff: Mehaho ea data. Ka tsela, e, ha ke e-s'o rute lihlopha tsena nako e telele ... Sekolo sa Rocket. Ho ne ho le monate, empa ho ne ho hloka boiteko bo matla, hape ke na le bophelo! HO LOKILE. Kahoo, ho e 'ngoe ea lihlopha tse kholo le tse thahasellisang, "Ts'ebetso ea hau e ea hokae," ke ile ka fa liithuti mohlala: li-gigabytes tse peli le halofo tsa data ea fintech li ne li baloa ho tsoa faeleng ea CSV 'me joale ba tlameha ho bala palo ea lihlahisoa tse rekisoang. . Lintlha tse tloaelehileng tsa 'maraka oa tick. Lipakete tsa UDP li fetoletsoe ho sebopeho sa mongolo ho tloha lilemong tsa bo-70. Chicago Mercantile Exchange - mefuta eohle ea lintho tse kang botoro, poone, linaoa tsa soya, lintho tse joalo. Ho ne ho hlokahala ho bala lihlahisoa tsena, palo ea litšebelisano, palo e tloaelehileng ea motsamao oa lichelete le thepa, joalo-joalo. Ke lipalo tse bonolo tsa khoebo: fumana khoutu ea sehlahisoa (e leng litlhaku tse 1-2 tafoleng ea hash), fumana chelete eo, u e kenye ho e 'ngoe ea lihlopha tsa khoebo, eketsa molumo, eketsa boleng, le lintho tse ling tse 'maloa. Lipalo tse bonolo haholo. Ts'ebetso ea ho bapala e ne e le e tobileng haholo: ntho e 'ngoe le e' ngoe e ka faele, ke bala faele ebe ke tsamaea ka eona, ke arola litlaleho tsa motho ka mong ka likhoele tsa Java, ke batla lintho tse hlokahalang ho tsona le ho li eketsa ho ea ka lipalo tse hlalositsoeng ka holimo. 'Me e sebetsa ka lebelo le tlase.

Ka mokhoa ona, ho hlakile hore na ho etsahalang, 'me computing e tšoanang e ke ke ea thusa, na ha ho joalo? Hoa etsahala hore keketseho ea ts'ebetso ka makhetlo a mahlano e ka finyelloa feela ka ho khetha mekhoa e nepahetseng ea data. 'Me sena se makatsa esita le baetsi ba mananeo ba nang le phihlelo! Tabeng ea ka, leqheka e ne e le hore ha ua lokela ho etsa likabelo tsa memori ka loop e chesang. Sena ha se 'nete eohle, empa ka kakaretso - ha ua lokela ho totobatsa "hang ho X" ha X e le kholo ka ho lekaneng. Ha X e le li-gigabyte tse peli le halofo, ha ua tšoanela ho fana ka eng kapa eng “hanngoe ka tlhaku”, kapa “hanngoe ka mola”, kapa “hang ka lebaleng”, eng kapa eng e joalo. Mona ke moo nako e sebelisoang teng. See se sebetsa joang? Ak'u nahane ke letsa String.split() kapa BufferedReader.readLine(). Readline e etsa khoele ho tsoa sehlopheng sa li-byte tse ileng tsa tla holim'a marang-rang, hang bakeng sa mohala o mong le o mong, bakeng sa o mong le o mong oa mela e limilione tse makholo. Ke nka mola ona, ke o hlalose ebe ke o lahla. Hobaneng ke e lahla - hantle, ke se ke e hlophisitse, ke phetho. Kahoo, bakeng sa byte e 'ngoe le e' ngoe e baloang ho tloha ho 2.7G ena, litlhaku tse peli li tla ngoloa moleng, ke hore, e se e ntse e le 5.4G, 'me ha ke li hloke bakeng sa ntho leha e le efe e eketsehileng, kahoo li lahleloa. Haeba u sheba bandwidth ea memori, re laela 2.7G e tsamaeang ka memori le bese ea memori ho processor, ebe ka makhetlo a mabeli a romelloa moleng o robetseng mohopolong, 'me sena sohle se senyeha ha mohala o mong le o mong o mocha o bōptjoa. Empa ke hloka ho e bala, hardware ea e bala, le haeba ntho e 'ngoe le e' ngoe e senyeha hamorao. 'Me ke tlameha ho e ngola fatše hobane ke thehile mohala mme li-cache li tletse - cache ha e khone ho amohela 2.7G. Kahoo, bakeng sa byte e 'ngoe le e' ngoe eo ke e balileng, ke bala li-byte tse ling tse peli ebe ke ngola li-byte tse ling tse peli, 'me qetellong li na le karolelano ea 4: 1 - ka karolelano ena re senya mohopolo oa mohopolo. 'Me joale e fellang kateng le hore haeba ke etsa joalo String.split() - lena ha se lekhetlo la ho qetela ke etsa sena, ho ka 'na ha e-ba le masimo a mang a 6-7 ka hare. Kahoo khoutu ea khale ea ho bala CSV le ho arola likhoele ho fella ka tšenyo ea bandwidth ea memori e ka bang 14: 1 e amanang le seo u ka ratang ho ba le sona. Haeba u lahla likhetho tsena, u ka fumana lebelo la makhetlo a mahlano.

'Me ha ho thata hakaalo. Haeba u sheba khoutu ka lehlakoreng le nepahetseng, e ba bonolo hang ha u hlokomela bothata. Ha ua lokela ho khaotsa ho fana ka mohopolo ka ho feletseng: bothata feela ke hore u fana ka ntho e itseng 'me hang-hang e shoa,' me tseleng e chesa mohloli oa bohlokoa, oo tabeng ena e leng bandwidth ea memori. 'Me sena sohle se fella ka ho theoha ha tlhahiso. Ho x86 hangata o hloka ho chesa lipotoloho tsa processor ka mafolofolo, empa mona o chesitse memori eohle pejana. Tharollo ke ho fokotsa palo ea ho tsoa. 
Karolo e 'ngoe ea bothata ke hore haeba u tsamaisa profiler ha mohala oa memori o fela, hantle ha e etsahala, hangata u emetse hore cache e khutle hobane e tletse litšila tseo u sa tsoa li hlahisa, mela eo kaofela. Ka hona, ts'ebetso e 'ngoe le e' ngoe ea mojaro kapa lebenkele e lieha, hobane e lebisa ho hloloheloa ha cache - cache eohle e se e lieha, e emetse hore litšila li e tlohe. Ka hona, profil e tla bonts'a lerata le futhumetseng le sa reroang le kentsoeng ka har'a loop eohle - ho ke ke ha ba le taeo e fapaneng e chesang kapa sebaka sa khoutu. Lerata feela. 'Me ha u sheba lipotoloho tsa GC, kaofela ke Moloko o Mocha ebile o potlakile haholo - li-microseconds kapa milliseconds. Etsoe, mohopolo ona kaofela o shoa hang-hang. O abela dibilione tsa gigabyte, mme o a di seha, le ho di seha, le ho di seha hape. Sena sohle se etsahala kapele haholo. Hoa fumaneha hore ho na le lipotoloho tse theko e tlaase tsa GC, lerata le futhumetseng ho potoloha potoloho eohle, empa re batla ho fumana lebelo la 5x. Ka nako ena, ho na le ntho e lokelang ho koala hloohong ea hau 'me e lle: "Hobaneng see?!" Ho phalla ha memori ea memori ha ho bontšoe ho "debugger" ea khale; o hloka ho tsamaisa "hardware performance counter debugger" 'me u iponele eona ka kotloloho. Empa sena se ke ke sa belaelloa ka ho toba ho tsoa matšoao ana a mararo. Letšoao la boraro ke ha u sheba seo u se totobatsang, botsa setsebi, 'me oa araba: "U entse mela e limilione tse likete, empa GC e sebetsa mahala." Hang ha sena se etsahala, oa hlokomela hore u thehile lintho tse ngata haholo 'me u chesitse tsela eohle ea memori. Ho na le mokhoa oa ho fumana sena, empa ha ho bonahale. 

Bothata bo ka har'a sebopeho sa data: sebopeho se se nang letho se thehiloeng nthong e 'ngoe le e' ngoe e etsahalang, se seholo haholo, ke 2.7G ho disk, kahoo ho etsa kopi ea ntho ena ha ho ratehe haholo - o batla ho e kenya ho tloha ho netweke byte buffer hang-hang. libukeng, e le hore u se ke ua bala-ngola ho ea pele le pele ka makhetlo a mahlano. Ka bomalimabe, Java ha e u fe laebrari e joalo e le karolo ea JDK ka boiketsetso. Empa sena ke sa bohlokoa, ho joalo? Ha e le hantle, tsena ke mela e 5-10 ea khoutu e tla sebelisoa ho kenya ts'ebetsong mochini oa hau oa khoele o phethiloeng, o pheta-phetang boitšoaro ba sehlopha sa likhoele, ha o ntse o le sekoahelo ho pota-pota buffer e ka tlase. Ka lebaka leo, hoa fumaneha hore u sebetsa hoo e batlang e le ka likhoele, empa ha e le hantle, litsupa ho buffer li ntse li falla moo, 'me li-byte tse tala ha li kopitsoe kae kapa kae, kahoo li-buffers tse tšoanang li sebelisoa khafetsa,' Sistimi ea ts'ebetso e thabela ho inkela lintho tseo e li etselitsoeng, joalo ka ho patoa habeli ha li-byte buffers, 'me ha u sa ntse u sila ka bongata bo sa feleng ba data e sa hlokahaleng. Ka tsela, na ua utloisisa hore ha u sebetsa le GC, ho tiisetsoa hore kabo e 'ngoe le e' ngoe ea memori e ke ke ea bonahala ho processor ka mor'a potoloho ea ho qetela ea GC? Ka hona, sena sohle ha se khonehe ho ba ka har'a cache, ebe ho na le phoso e netefalitsoeng ea 100%. Ha u sebetsa ka pointer, ho x86, ho tlosa ngoliso mohopolong ho nka nako ea 1-2, 'me hang ha sena se etsahala, u lefa, u lefa, u lefa, hobane memori e ntse e tsoela pele. LIKETSO tse robong - mme sena ke litšenyehelo tsa kabo ea memori. Boleng ba sebele.

Ka mantsoe a mang, libopeho tsa data ke ntho e thata ka ho fetisisa ho e fetola. 'Me hang ha u hlokomela hore u khethile mokhoa o fosahetseng oa data o tla bolaea ts'ebetso hamorao, hangata ho na le mosebetsi o mongata o lokelang ho etsoa, ​​​​empa haeba u sa etse joalo, lintho li tla mpefala. Pele ho tsohle, o hloka ho nahana ka meaho ea data, sena ke sa bohlokoa. Litsenyehelo tse ka sehloohong mona li oela mefuteng ea data ea mafura, e seng e qala ho sebelisoa ka mokhoa oa "Ke kopitsitse sebopeho sa data X ka sebopeho sa data Y hobane ke rata sebopeho sa Y hantle." Empa ts'ebetso ea kopi (e shebahalang e le theko e tlase) e senya bandwidth ea memori mme ke moo nako eohle ea ts'ebetso e senyehileng e patoang. Haeba ke na le khoele e kholo ea JSON 'me ke batla ho e fetola sefate sa DOM se hlophisitsoeng sa POJOs kapa ntho e' ngoe, ts'ebetso ea ho arola khoele eo le ho haha ​​​​POJO, ebe ke fumana POJO hape hamorao, ho tla fella ka litšenyehelo tse sa hlokahaleng - ke eseng theko e tlase. Ntle le haeba o matha ho pota-pota POJO hangata ho feta ho pota khoele. Ntle le moo, o ka leka ho hlakola mohala ebe o ntša feela seo o se hlokang ho tloha moo, ntle le ho se fetola POJO efe kapa efe. Haeba tsena tsohle li etsahala tseleng eo ho eona ho hlokahalang ts'ebetso e kholo, ha ho na POJO bakeng sa hau, u hloka ho cheka moleng ka kotloloho.

Ke hobane'ng ha u iketsetsa puo ea lenaneo

Andrei: U itse e le hore u utloisise mokhoa oa litšenyehelo, u lokela ho ngola puo ea hau e nyenyane ...

Cliff: Ha se puo, empa ke moqapi. Puo le moqapi ke lintho tse peli tse fapaneng. Phapang ea bohlokoa ka ho fetisisa e hloohong ea hau. 

Andrei: Ka tsela, ho ea kamoo ke tsebang, u ntse u leka ho iketsetsa lipuo tsa hau. Molelmong oa eng?

Cliff: Hobane nka khona! Ke se ke tlohetse mosebetsi, kahoo ena ke ntho ea ka ea ho itlosa bolutu. Haesale ke sebelisa lipuo tsa batho ba bang bophelo bohle ba ka. Ke boetse ke sebelitse haholo ka mokhoa oa ka oa ho khouta. Mme hape hobane ke bona mathata ka dipuo tse ding. Kea bona hore ho na le mekhoa e metle ea ho etsa lintho tse tloaelehileng. 'Me ke ne ke tla li sebelisa. Ke khathetse ke ho bona mathata ka ho nna, ka Java, ka Python, ka puo efe kapa efe e 'ngoe. Hona joale ke ngola ho React Native, JavaScript le Elm e le mokhoa oa ho itlosa bolutu o seng mabapi le ho tlohela mosebetsi, empa ka mosebetsi o mafolofolo. Ke boetse ke ngola ka Python, 'me, mohlomong, ke tla tsoelapele ho sebetsa ho ithuta ka mochini bakeng sa li-backend tsa Java. Ho na le lipuo tse ngata tse tsebahalang 'me kaofela li na le likarolo tse khahlisang. E mong le e mong o lokile ka tsela ea hae mme o ka leka ho kopanya likarolo tsena kaofela. Kahoo, ke ithuta lintho tse nthabisang, boitšoaro ba puo, ke leka ho hlahisa mantsoe a utloahalang. 'Me ho fihlela joale kea atleha! Hajoale ke ntse ke loantšana le semantics ea memori, hobane ke batla ho ba le eona joalo ka C le Java, le ho fumana mohlala o matla oa mohopolo le semantics ea memori bakeng sa meroalo le mabenkele. Ka nako e ts'oanang, etsa tlhahiso ea mofuta oa othomathike joalo ka Haskell. Mona, ke leka ho kopanya tlhahiso ea mofuta oa Haskell le mosebetsi oa memori ho C le Java. Sena ke seo esale ke se etsa likhoeling tse 2-3 tse fetileng, mohlala.

Andrei: Haeba u aha puo e nkang lintlha tse betere ho tsoa lipuong tse ling, na u nahana hore ho na le motho ea tla etsa se fapaneng le seo: nka mehopolo ea hau u e sebelise?

Cliff: Ke kamoo lipuo tse ncha li hlahang kateng! Ke hobane'ng ha Java e tšoana le C? Hobane C e ne e e-na le syntax e ntle eo bohle ba e utloisisang 'me Java e ne e bululetsoe ke syntax ena, ho eketsa ts'ireletso ea mofuta, ho hlahloba meeli ea lihlopha, GC, hape ba ntlafalitse lintho tse ling ho tloha ho C. Ba kentse tsa bona. Empa ba ile ba bululeloa haholo, na? E mong le e mong o ema mahetleng a linatla tse tlileng pele ho uena - ke kamoo tsoelo-pele e etsoang kateng.

Andrei: Joalokaha ke e utloisisa, puo ea hau e tla sireletseha mohopolong. A na u nahanne ka ho kenya tšebetsong ntho e kang ho hlahloba kalimo ho tsoa ho Rust? Na u kile ua mo sheba, u nahana joang ka eena?

Cliff: Ke 'nile ka ngola C ka lilemo tse ngata, ka malloc ena kaofela le mahala, le ho laola bophelo bohle ba ka. Ua tseba, 90-95% ea nako ea bophelo e laoloang ka letsoho e na le sebopeho se tšoanang. Mme ho bohloko haholo ho e etsa ka letsoho. Ke kopa mohlophisi a u bolelle feela se etsahalang moo le seo u se fihletseng ka liketso tsa hau. Bakeng sa lintho tse ling, motho ea alimang chelete o etsa sena ka ntle ho lebokose. 'Me e lokela ho bonts'a tlhahisoleseling, ho utloisisa ntho e' ngoe le e 'ngoe, esita le ho se nkimetse ka ho hlahisa kutloisiso ena. E tlameha ho etsa bonyane tlhahlobo ea ho phonyoha ha lehae, 'me ha feela e hloleha, joale e hloka ho kenyelletsa litlhaloso tsa mofuta o tla hlalosa bophelo bohle - mme leano le joalo le rarahane ho feta sehlahlobi sa mekoloto, kapa sehlahlobi sa memori se seng se le teng. Khetho pakeng tsa "tsohle li lokile" le "ha ke utloisise letho" - che, ho tlameha ho be le ho hong ho molemo. 
Kahoo, joalo ka motho ea ngotseng khoutu e ngata ho C, ke nahana hore ho ba le ts'ehetso ea ho laola bophelo bohle ke ntho ea bohlokoa ka ho fetisisa. Ke boetse ke khopisitsoe ke hore na Java e sebelisa mohopolo hakae mme tletlebo e kholo ke GC. Ha o fana ka memori ho Java, u ke ke ua fumana memori e neng e le sebakeng sa GC ea ho qetela. Ha ho joalo ka lipuo tse nang le taolo e nepahetseng ea memori. Haeba u letsetsa malloc, hang-hang u fumana memori eo hangata e neng e sebelisoa feela. Hangata u etsa lintho tse ling tsa nakoana ka memori ebe u e khutlisa hang-hang. 'Me hang-hang e khutlela letamong la malloc,' me potoloho e latelang ea malloc e e ntša hape. Ka hona, ts'ebeliso ea 'nete ea mohopolo e fokotsehile ho sete ea lintho tse phelang ka nako e behiloeng, hammoho le ho lutla. 'Me haeba ntho e' ngoe le e 'ngoe e sa lutle ka mokhoa o sa hlompheheng ka ho feletseng, boholo ba mohopolo o fella ka li-cache le processor,' me e sebetsa kapele. Empa e hloka taolo ea memori e ngata ka malloc le mahala e bitsoang ka tatellano e nepahetseng, sebakeng se nepahetseng. Mafome a ka sebetsana le sena hantle a le mong, 'me maemong a mangata a fana ka ts'ebetso e ntle le ho feta, kaha tšebeliso ea mohopolo e fokotsehile ho ea ho computation ea hona joale - ho fapana le ho emela potoloho e latelang ea GC ho lokolla mohopolo. Ka lebaka leo, re fumane mokhoa o khahlisang haholo oa ho ntlafatsa ts'ebetso. Ebile e matla haholo - ke bolela hore ke entse lintho tse joalo ha ke ntse ke sebetsa data ea fintech, mme sena se ile sa ntumella ho potlakisa makhetlo a ka bang hlano. Ke khothatso e kholo, haholo lefatšeng leo li-processor li sa potlakang mme re ntse re emetse lintlafatso.

Mosebetsi oa Moenjiniere oa Ts'ebetso

Andrei: Ke kopa hape ho botsa ka mesebetsi ka kakaretso. U ile ua hlahella ka mosebetsi oa hau oa JIT ho HotSpot mme ua fallela Azul, eo hape e leng k'hamphani ea JVM. Empa re ne re se re ntse re sebetsa ho Hardware ho feta software. 'Me ka tšohanyetso ba fetohela ho Big Data le ho Ithuta ka Mochini, ebe ba fumana bomenemene. See se etsahetse joang? Tsena ke libaka tse fapaneng haholo tsa nts'etsopele.

Cliff: Ke qetile nako e telele ke etsa mananeo mme ke khonne ho nka lihlopha tse ngata tse fapaneng. Mme ha batho ba re: "oh, ke uena ea entseng JIT bakeng sa Java!", e lula e qabola. Empa pele ho moo, ke ne ke ntse ke sebetsa ho mofuta oa PostScript - puo eo Apple e kileng ea e sebelisa bakeng sa bahatisi ba eona ba laser. Mme pele ho moo ke ile ka kenya tshebetsong puo ya Bone. Ke nahana hore sehlooho se tloaelehileng ho 'na ke ntlafatso ea lisebelisoa. Bophelong bohle ba ka esale ke etsa lisebelisoa tseo batho ba bang ba ngolang mananeo a bona a pholileng ka tsona. Empa ke ne ke boetse ke kenya letsoho ho nts'etsopele ea lits'ebetso tsa ts'ebetso, bakhanni, li-debugger tsa kernel-level, lipuo tsa nts'etsopele ea OS, tse qalileng e le tse nyane, empa ha nako e ntse e ea e ile ea e-ba thata le ho feta. Empa sehlooho se seholo e ntse e le nts'etsopele ea lisebelisoa. Karolo e kholo ea bophelo ba ka e ile ea feta pakeng tsa Azul le Sun, 'me e ne e le ka Java. Empa ha ke kena ho Big Data le Machine Learning, ke ile ka roala katiba ea ka e majabajaba 'me ka re, "Oho, joale re na le bothata bo sa reng letho,' me ho na le lintho tse ngata tse thahasellisang tse etsahalang le batho ba etsang lintho." Ena ke tsela e kholo ea nts'etsopele e lokelang ho nkuoa.

Ee, ke hlile ke rata komporo e ajoang. Mosebetsi oa ka oa pele e ne e le seithuti sa C, mosebetsing oa ho bapatsa. Sena se ile sa ajoa komporo ho li-chips tsa Zilog Z80 tse bokelletseng data bakeng sa OCR ea analog, e hlahisoang ke mohlahlobi oa 'nete oa analog. E ne e le sehlooho se pholileng le se hlanyang ka ho feletseng. Empa ho ne ho na le mathata, karolo e 'ngoe e ne e sa tsejoe hantle, kahoo u ne u tlameha ho ntša setšoantšo u se bontše motho ea seng a ntse a tseba ho bala ka mahlo le ho tlaleha seo e se buang, kahoo ho ne ho e-na le mesebetsi e nang le data, le mesebetsi ena. ba ne ba e-na le puo ea bona . Ho ne ho e-na le mokokotlo o neng o sebetsana le tsena tsohle - li-Z80 tse tsamaeang ka mokhoa o ts'oanang le li-terminals tsa vt100 tse sebetsang - motho ka mong, 'me ho ne ho e-na le mohlala o tšoanang oa lenaneo ho Z80. Karolo e 'ngoe e tloaelehileng ea mohopolo e arolelanoang ke li-Z80 kaofela ka har'a tlhophiso ea linaleli; Sefofane se ka morao se ile sa boela sa arolelanoa, 'me halofo ea RAM e arolelanoa ka har'a marang-rang,' me halofo e 'ngoe e ne e le ea boinotšing kapa e ea ho ntho e' ngoe. Sistimi e ajoang e rarahaneng ka mokhoa o hlakileng e nang le mohopolo o arolelanoeng... o arolelanoeng ka halofo. Sena se ne se le neng ... ha ke khone le ho hopola, kae-kae bohareng ba lilemo tsa bo-80. Khale khale. 
E, ha re nke hore lilemo tse 30 ke khale haholo. Beowulf- lihlopha. Lihlopha tse joalo li shebahala joaloka ... Ka mohlala: ho na le Ethernet mme x86 ea hau e potlakileng e hokahane le Ethernet ena, 'me joale u batla ho fumana mohopolo o arolelanoang oa bohata, hobane ha ho motho ea neng a ka etsa coding ea computing e abuoang ka nako eo, ho ne ho le thata haholo ka hona ho na le. e ne e le memori e arolelanoang e nang le maqephe a memori ea ts'ireletso ho x86, 'me haeba u ngolla leqephe lena, joale re ile ra bolella li-processor tse ling hore haeba li ka fihlella mohopolo o tšoanang o arolelanoang, li tla hloka ho laeloa ho tsoa ho uena, ka hona ho na le ntho e kang protocol bakeng sa ts'ehetso. khokahanyo ea cache e hlahile le software bakeng sa sena. Khopolo e khahlisang. Ha e le hantle, bothata e ne e le ntho e 'ngoe hape. Sena sohle se ile sa sebetsa, empa ka potlako o ile oa fumana mathata a ts'ebetso, hobane ha ho motho ea neng a utloisisa mehlala ea ts'ebetso ka mokhoa o lekaneng - ho na le mekhoa efe ea ho fumana mohopolo, mokhoa oa ho etsa bonnete ba hore li-node ha li ping ka ho sa feleng, joalo-joalo.

Seo ke se hlahisitseng ho H2O ke hore ke bahlahisi ka bobona ba nang le boikarabelo ba ho fumana hore na ho bapisa ho patiloe hokae le moo ho seng teng. Ke ile ka tla le mohlala oa khouto o entseng hore ho ngola khoutu ea ts'ebetso e phahameng ho be bonolo le ho ba bonolo. Empa ho ngola khoutu e tsamaeang butle ho thata, e tla shebahala e le mpe. U hloka ho leka ka botebo ho ngola khoutu e liehang, u tla tlameha ho sebelisa mekhoa e sa tloaelehang. Khoutu ea braking e bonahala ha u habanya feela. Ka lebaka leo, hangata u ngola khoutu e mathang ka potlako, empa u tlameha ho tseba hore na u etse eng tabeng ea mohopolo o arolelanoang. Sena sohle se tlameletsoe ho lihlopha tse kholo 'me boitšoaro bo teng bo tšoana le lihlopha tse kholo tse sa fetoheng ka Java e bapileng. Ke bolela, nahana hore likhoele tse peli li ngolla sehlopha se tšoanang, e 'ngoe ea tsona e ea hapa,' me e 'ngoe, ka hona, e lahleheloa,' me ha u tsebe hore na ke efe. Haeba li sa fetohe, taelo e ka ba eng kapa eng eo u e batlang - mme sena se sebetsa hantle haholo. Batho ba hlile ba tsotella tatellano ea ts'ebetso, ba beha maemo a sa tsitsang libakeng tse nepahetseng, 'me ba lebelletse mathata a ts'ebetso a amanang le mohopolo libakeng tse nepahetseng. Ho seng joalo, ba ne ba tla ngola khoutu ka mokhoa oa loops ho tloha ho 1 ho ea ho N, moo N e leng litrillione tse ling, ka tšepo ea hore linyeoe tsohle tse rarahaneng li tla tšoana - 'me ha li sebetse moo. Empa ho H2O sena ha se Java kapa Scala; o ka e nka e le "Java minus minus" ha u batla. Ena ke mokhoa o hlakileng oa ho etsa mananeo 'me o tšoana le ho ngola khoutu e bonolo ea C kapa Java ka loops le li-arrays. Empa ka nako e ts'oanang, mohopolo o ka sebetsoa ka terabytes. Ke ntse ke sebelisa H2O. Ke e sebelisa nako le nako mererong e fapaneng - mme e ntse e le eona ntho e potlakileng, makhetlo a mangata ka potlako ho feta bahlolisani ba eona. Haeba u etsa Big Data ka data ea kholomo, ho thata haholo ho otla H2O.

Mathata a Theknoloji

Andrei: Ke phephetso efe e kholo ka ho fetisisa mosebetsing oa hau kaofela?

Cliff: Na re buisana ka karolo ea tekheniki kapa e seng ea tekheniki ea taba? Ke re liqholotso tse kholo ha se tsa tekheniki. 
Ha e le mathata a tekheniki. Ke ba hlotse feela. Ha ke tsebe le hore na e kholo ka ho fetisisa e ne e le eng, empa ho ne ho e-na le tse ling tse thahasellisang tse ileng tsa nka nako e telele, ntoa ea kelello. Ha ke ea Sun, ke ne ke kholisehile hore ke tla etsa compiler e potlakileng, 'me sehlopha sa batho ba baholo se ile sa re ha se arabela hore nke ke ka atleha. Empa ke ile ka latela tsela ena, ka ngolla moqapi ho ea ho mofani oa ngoliso, mme e ne e potlakile haholo. E ne e potlakile joaloka C1 ea morao-rao, empa mofani o ne a lieha haholo ka nako eo, 'me ka morao e ne e le bothata bo boholo ba sebopeho sa data. Ke ne ke e hloka ho ngola graphical registerer allocator mme ke ne ke sa utloisise bothata pakeng tsa ho hlalosa khoutu le lebelo, tse neng li le teng nakong eo 'me e le tsa bohlokoa haholo. Ho ile ha fumaneha hore sebopeho sa data hangata se feta boholo ba cache ho x86s ea nako eo, ka hona, haeba qalong ke ne ke nahana hore mofani oa ngoliso o tla sebetsa liperesente tse 5-10 tsa nako eohle ea jitter, ha e le hantle ho ile ha bonahala e le. 50 lekholong.

Ha nako e ntse e ea, moqapi o ile a hloeka le ho sebetsa hantle, a khaotsa ho hlahisa khoutu e tšabehang maemong a mangata, 'me ts'ebetso e ntse e tsoela pele ho tšoana le seo motlalehi oa C. Ntle le haeba, ha e le hantle, u ngola lintho tse ling tseo esita le C e sa li potlakiseng. . Haeba u ngola khoutu joalo ka C, u tla fumana ts'ebetso joalo ka C maemong a mangata. 'Me ha u ntse u tsoela pele, hangata u fumana khoutu e lumellanang le boemo ba C ka mokhoa o sa tsitsang, mofani oa ngoliso o ile a qala ho shebahala joaloka ntho e feletseng ... ho sa tsotellehe hore na khoutu ea hau e sebetsa ka potlako kapa butle. Ke ile ka tsoela pele ho sebetsa ho mofani oa lichelete ho etsa khetho e ntle. O ile a ba ea liehang le ea liehang, empa a fana ka ts'ebetso e ntlafetseng le e ntlafetseng maemong ao ho neng ho se motho ea ka khonang ho sebetsana le ona. Ke ne ke khona ho itahlela ho "registerer allocator", ka pata khoeli ea mosebetsi moo, 'me hang-hang khoutu eohle e ne e tla qala ho phethahatsa 5% ka potlako. Sena se ile sa etsahala nako le nako 'me mofani oa ngoliso ea rejista e ile ea e-ba ntho ea mosebetsi oa bonono - e mong le e mong o ne a e rata kapa a e hloile,' me batho ba tsoang sekolong ba ile ba botsa lipotso ka sehlooho se reng "ke hobane'ng ha ntho e 'ngoe le e' ngoe e etsoa ka tsela ena", ke hobane'ng ha ho se joalo? sekeno sa line, mme phapang ke efe. Karabo e ntse e tšoana: allocator e thehiloeng ho mebala ea graph hammoho le mosebetsi o hlokolosi haholo o nang le khoutu ea buffer o lekana le sebetsa sa tlhōlo, motsoako o motle ka ho fetisisa oo ho seng motho ea ka o hlōlang. 'Me sena ke ntho e sa hlakang. Ntho e 'ngoe le e' ngoe eo moqapi a e etsang ho na le lintho tse ithutoang hantle, leha li boetse li tlisitsoe boemong ba bonono. Kamehla ke ne ke etsa lintho tse neng li lokela ho fetola moqapi hore e be mosebetsi oa bonono. Empa ha ho le e 'ngoe ea tsena e neng e sa tloaeleha - ntle le moabi oa ngoliso. Leqheka ke ho ba hlokolosi kgaola tlas'a mojaro 'me, haeba sena se etsahala (ke khona ho hlalosa ka ho qaqileng haholoanyane haeba u thahasella), sena se bolela hore u ka inline ka mokhoa o mabifi, ntle le kotsi ea ho oela holim'a kink lenaneong la tshebetso. Matsatsing ao, ho ne ho e-na le sehlopha sa bahlophisi ba feletseng, ba fanyehiloeng ka li-baubles le liloli, ba neng ba e-na le li-allocators, empa ho ne ho se motho e mong ea ka e etsang.

Bothata ke hore haeba o eketsa mekhoa e tlas'a ho kenngoa, ho eketseha le ho eketsa sebaka sa inlining, sete sa boleng bo sebelisitsoeng hang-hang se feta palo ea lirekoto, 'me u tlameha ho li khaola. Boemo bo boima hangata bo tla ha mofani a inehela, 'me mokhethoa a le mong ea molemo bakeng sa tšollo ea mali a lekana, o tla rekisa lintho tse ling tse hlaha. Boleng ba ho inlining mona ke hore o lahleheloa ke karolo e ka holimo, holimo bakeng sa ho letsetsa le ho boloka, o ka bona litekanyetso tse ka hare mme o ka li ntlafatsa le ho feta. Litsenyehelo tsa inlining ke hore palo e kholo ea litekanyetso tse phelang li thehoa, 'me haeba moemeli oa hau oa ngoliso o chesa ho feta kamoo ho hlokahalang, hang-hang o lahleheloa. Ka hona, boholo ba li-allocators ba na le bothata: ha inlining e tšela moeli o itseng, ntho e 'ngoe le e' ngoe lefatšeng e qala ho fokotseha 'me tlhahiso e ka theoleloa ka ntloana. Ba kenyang ts'ebetsong moqapi ba eketsa li-heuristics tse ling: mohlala, ho emisa ho inlining, ho qala ka boholo bo lekaneng bo lekaneng, kaha likabelo li tla senya ntho e 'ngoe le e' ngoe. Ena ke tsela eo kink ea graph ea ts'ebetso e thehoang ka eona - u inline, inline, ts'ebetso e ntse e hola butle - ebe oa phahama! - e oela fatše joalo ka jack e potlakileng hobane u kolokile haholo. Ena ke tsela eo ntho e 'ngoe le e' ngoe e neng e sebetsa ka eona pele Java e fihla. Java e hloka inlining e ngata, ka hona ke ile ka tlameha ho etsa hore mofani oa ka a be mabifi le ho feta e le hore a theohe ho e-na le ho senyeha, 'me haeba u inline haholo, e qala ho tšoloha, empa nako ea "ha e sa hlola e tšoloha" e ntse e tla. Ena ke tlhokomeliso e khahlisang 'me e ile ea tla ho' na feela, e sa totobala, empa e ile ea lefa hantle. Ke ile ka nka li-inlining tse mabifi 'me tsa nkisa libakeng tseo tšebetso ea Java le C li sebetsang hammoho. Ba haufi haholo - nka ngola khoutu ea Java e lebelo haholo ho feta C khoutu le lintho tse joalo, empa ka karolelano, setšoantšong se seholo sa lintho, li batla li bapisoa. Ke nahana hore karolo ea boleng bona ke moabi oa ngoliso, e ntumellang ho inline ka booatla kamoo ho ka khonehang. Ke feela ka har'a tsohle tseo ke li bonang. Potso mona ke hore na mofani o sebetsa hantle, hore na sephetho ke khoutu e sebetsang ka bohlale. Ena e ne e le phephetso e kholo: ho utloisisa sena sohle le ho se etsa hore se sebetse.

Hanyenyane ka kabo ea ngoliso le li-multi-cores

Vladimir: Mathata a kang kabo ea ngoliso a bonahala e le mofuta oa sehlooho se sa feleng, se sa feleng. Kea ipotsa hore na ho kile ha ba le mohopolo o neng o bonahala o ts'episa ebe o hloleha ts'ebetsong?

Cliff: Ka sebele! Kabo ea ngoliso ke sebaka seo ho sona u lekang ho fumana li-heuristics ho rarolla bothata bo felletseng ba NP. Mme ha ho mohla o ka fihlelang tharollo e phethahetseng, na? Sena ha se khonehe. Sheba, Pele ho Nako ho bokella - e boetse e sebetsa hampe. Puisano mona e mabapi le maemo a tloaelehileng. Mabapi le ts'ebetso e tloaelehileng, e le hore u ka ea lekanya ntho eo u nahanang hore e nepahetse - ha e le hantle, u sebeletsa ho e ntlafatsa! Kabo ea ngoliso ke sehlooho se mabapi le ts'ebetso. Ha u se u e-na le prototype ea pele, e sebetsa le ho penta se hlokahalang, mosebetsi oa ts'ebetso o qala. U lokela ho ithuta ho metha hantle. Ke hobane'ng ha e le ea bohlokoa? Haeba u na le lintlha tse hlakileng, u ka sheba libaka tse fapaneng 'me ua bona: e, e thusitse mona, empa ke moo ntho e' ngoe le e 'ngoe e ileng ea robeha! Maikutlo a mang a matle a hlaha, o eketsa li-heuristics tse ncha mme ka tšohanyetso ntho e 'ngoe le e' ngoe e qala ho sebetsa hantle hanyane ka karolelano. Kapa ha e qale. Ke ne ke e-na le linyeoe tse ngata moo re neng re loanela ts'ebetso ea liphesente tse hlano e neng e khetholla tsoelo-pele ea rona ho mofani oa pele. 'Me nako le nako ha e shebahala tjena: kae-kae u hlōla, kae-kae u lahleheloa. Haeba u na le lisebelisoa tse ntle tsa tlhahlobo ea ts'ebetso, u ka fumana mehopolo e lahlehileng 'me ua utloisisa hore na ke hobane'ng ha li hloleha. Mohlomong ho bohlokoa ho tlohela ntho e 'ngoe le e' ngoe kamoo e leng kateng, kapa mohlomong ho nka mokhoa o tebileng haholoanyane oa ho lokisa hantle, kapa ho tsoa ho ea lokisa ntho e 'ngoe. Ke lintho tse ngata! Ke entse sena se pholileng, empa ke boetse ke hloka sena, le sena, le sena - mme motsoako oa bona o feletseng o fana ka ntlafatso. Mme batho ba jewang ke bodutu ba ka hloleha. Ena ke mofuta oa mosebetsi oa ts'ebetso mathateng a NP-e felletseng.

Vladimir: Motho o ba le maikutlo a hore lintho tse kang ho penta ho li-allocator ke bothata bo seng bo rarollotsoe. Che, e etselitsoe uena, ho ea ka seo u se buang, ka hona ho bohlokoa le ho feta ...

Cliff: Ha e rarolloe joalo. Ke uena ea lokelang ho e fetola "e rarollotsoeng". Ho na le mathata a boima 'me a hloka ho rarolloa. Ha sena se se se entsoe, ke nako ea ho sebetsa tlhahiso. U hloka ho atamela mosebetsi ona ka nepo - etsa li-benchmarks, bokella metrics, hlalosa maemo ha, ha u khutlela phetolelong e fetileng, hack ea hau ea khale e ile ea qala ho sebetsa hape (kapa ka tsela e fapaneng, e emisa). Mme o seke wa tela ho fihlela o fihletse ho hong. Joalokaha ke se ke boletse, haeba ho na le mehopolo e pholileng e sa kang ea sebetsa, empa tšimong ea kabo ea lirekoto tsa mehopolo e batla e sa feleng. Ka mohlala, u ka bala lingoliloeng tsa saense. Le hoja hona joale sebaka sena se se se qalile ho tsamaea butle haholo 'me se hlakile ho feta nakong ea bocha ba sona. Leha ho le joalo, ho na le batho ba se nang palo ba sebetsang tšimong ena mme mehopolo eohle ea bona e loketse ho leka, kaofela ba emetse mapheong. 'Me u ke ke ua tseba hore na li ntle hakae ntle le hore u li leke. Li kopanya hantle hakae le ntho e 'ngoe le e' ngoe ho mofani oa hau, hobane mofani oa thepa o etsa lintho tse ngata, 'me likhopolo tse ling li ke ke tsa sebetsa ho mofani oa hau o itseng, empa ho mofani e mong li tla ba bonolo. Tsela e ka sehloohong ea ho hapa bakeng sa mofani ke ho hula lintho tse liehang ka ntle ho tsela e kholo le ho li qobella ho arohana ho ea ka meeli ea litsela tse liehang. Kahoo haeba u batla ho tsamaisa GC, nka tsela e liehang, e fokotsehe, etsa mokhelo, lintho tseo kaofela - ua tseba hore lintho tsena ha li fumanehe. 'Me ba hlile ba ka seoelo, ke hlahlobile. U etsa mosebetsi o eketsehileng 'me o tlosa lithibelo tse ngata litseleng tsena tse liehang, empa ha ho na taba hobane li tsamaea butle ebile ha se hangata li tsamaeang. Ka mohlala, null pointer - ha ho mohla e etsahalang, na? U hloka ho ba le litsela tse 'maloa bakeng sa lintho tse fapaneng, empa ha lia lokela ho kena-kenana le e kholo. 

Vladimir: U nahana'ng ka li-multi-cores, ha ho na le li-cores tse likete ka nako e le 'ngoe? Na ke ntho e molemo?

Cliff: Katleho ea GPU e bonts'a hore e bohlokoa haholo!

Vladimir: Li khethehile haholo. Ho thoe'ng ka li-processor tse akaretsang?

Cliff: Eo e ne e le mohlala oa khoebo oa Azul. Karabo e ile ea khutla nakong eo ka eona batho ba neng ba hlile ba rata ts'ebetso e ka bonoang esale pele. Ho ne ho le thata ho ngola khoutu e tšoanang mehleng eo. Moetso oa likhoutu oa H2O o ka senyeha haholo, empa ha se mohlala oa sepheo se akaretsang. Mohlomong e akaretsang hanyane ho feta ha o sebelisa GPU. Na re bua ka ho rarahana ha ho hlahisa ntho e joalo kapa ho rarahana ha ho e sebelisa? Mohlala, Azul o nthutile thuto e khahlisang, e seng pepeneneng: li-cache tse nyane li tloaelehile. 

Qholotso e kholo bophelong

Vladimir: Ho thoe'ng ka liphephetso tseo e seng tsa theknoloji?

Cliff: Kgwetlho e kgolo e ne e se go nna... go nna pelonomi le go nna molemo mo bathong. Ka lebaka leo, ke ne ke lula ke iphumana ke le maemong a likhohlano haholo. Bao ke neng ke tseba hore lintho ha li tsamaee hantle, empa ke sa tsebe ho tsoela pele ka mathata ao 'me ke sa khone ho a rarolla. Mathata a mangata a nako e telele, a tšoarellang ka lilemo tse mashome, a ile a hlaha ka tsela ena. Taba ea hore Java e na le li-compilers tsa C1 le C2 ke phello e tobileng ea sena. Taba ea hore ho ne ho se na pokello ea maemo a mangata Java ka lilemo tse leshome ka tatellano le eona ke phello e tobileng. Ho hlakile hore re ne re hloka tsamaiso e joalo, empa ha ho hlake hore na ke hobane’ng ha e ne e le sieo. Ke bile le mathata le moenjiniere a le mong ... kapa sehlopha sa baenjiniere. Ka nako e 'ngoe, ha ke qala ho sebetsa Sun, ke ne ke ... Ho lokile, eseng feela ka nako eo, ka kakaretso ke na le maikutlo a ka ka ntho e 'ngoe le e' ngoe. 'Me ke ne ke nahana hore ke' nete hore u ka nka 'nete ena ea hau 'me ua e bua ka hlooho. Haholo-holo kaha ke ne ke nepile ka mokhoa o makatsang hangata. 'Me haeba u sa rate mokhoa ona ... haholo-holo haeba ho hlakile hore u fositse ebile u etsa lintho tse se nang thuso ... Ka kakaretso, ke batho ba fokolang ba neng ba ka mamella mokhoa ona oa puisano. Leha ba bang ba ka khona, joalo ka nna. Ke thehile bophelo bohle ba ka holim'a melao-motheo ea meritocratic. Haeba u mpontša phoso, hang-hang ke tla reteleha 'me ke re: u buile lefeela. Ka nako e ts'oanang, ha e le hantle, ke kōpa tšoarelo le tsohle, ke tla ela hloko melemo, haeba e teng, 'me ke nke liketso tse ling tse nepahetseng. Ka lehlakoreng le leng, ke nepile ka mokhoa o makatsang ka liperesente tse kholo tse nyarosang tsa nako eohle. 'Me ha e sebetse hantle haholo likamanong le batho. Ha ke leke ho ba motle, empa ke botsa potso ka mokhoa o hlakileng. "Sena se ke ke sa sebetsa, hobane e le 'ngoe, tse peli le tse tharo." Mme ba ne ba re, “Oho!” Ho ne ho e-na le liphello tse ling tseo mohlomong ho neng ho le molemo ho li hlokomoloha: ka mohlala, tse ileng tsa etsa hore ke hlalane le mosali oa ka le lilemo tse leshome tsa ho tepella maikutlo ka mor’a moo.

Phephetso ke ho loana le batho, ka maikutlo a bona mabapi le seo u ka se khonang kapa u ke keng ua se etsa, se bohlokoa le se seng. Ho bile le mathata a mangata mabapi le mokhoa oa ho khouta. Ke ntse ke ngola khoutu e ngata, mme matsatsing ao ke ne ke bile ke tlameha ho fokotsa lebelo hobane ke ne ke etsa mesebetsi e mengata e bapileng le ho e etsa hampe, ho fapana le ho tsepamisa maikutlo ho e le 'ngoe. Ha ke hetla morao, ke ngotse halofo ea khoutu bakeng sa taelo ea Java JIT, taelo ea C2. Coder e latelang e potlakileng e ngotse halofo e le butle, halofo e latelang e le butle, 'me e bile ho fokotseha ho hoholo. Motho oa bosupa moleng ona o ne a le butle haholo - hoo ho etsahala kamehla! Ke amme khoutu e ngata. Ke ile ka sheba hore na ke mang ea ngotseng hore na, ntle le khethollo, ke ile ka sheba khoutu ea bona, ka hlahloba e 'ngoe le e' ngoe ea bona, 'me ke ntse ke tsoela pele ho ngola ho feta leha e le efe ea bona. Mokhoa ona ha o sebetse hantle ho batho. Batho ba bang ha ba rate sena. 'Me ha ba sa khone ho sebetsana le eona, litletlebo tsa mefuta eohle lia qala. Mohlala, ka nako e 'ngoe ke ile ka bolelloa hore ke tlohele ho ngola likhoutu hobane ke ngola khoutu e ngata haholo 'me e beha sehlopha kotsing,' me ea utloahala eka ke motlae ho 'na: monna, haeba sehlopha se seng se nyamela ke ntse ke ngola khoutu, uena. E tla lahleheloa ke lihlopha tse halofo feela. Ka lehlakoreng le leng, haeba ke lula ke ngola khoutu 'me u lahleheloa ke halofo ea sehlopha, seo se utloahala eka ke tsamaiso e mpe haholo. Ha kea ka ka nahana ka eona, ha kea ka ka bua ka eona, empa e ne e ntse e le kae-kae hloohong ea ka. Mohopolo o ne o ntse o bilika ka morao kelellong ea ka: “Na kaofela lea nthabisa?” Kahoo, bothata bo boholo e ne e le ’na le likamano tsa ka le batho. Hona joale ke ikutloa ke le betere, ke ne ke le moetapele oa sehlopha bakeng sa baetsi ba mananeo ka nako e telele, 'me joale ke bolella batho ka ho toba: ua tseba, ke 'na seo ke leng sona,' me u tla tlameha ho sebetsana le 'na - na ho lokile ha ke ema? Mona? 'Me ha ba qala ho sebetsana le eona, ntho e' ngoe le e 'ngoe e ile ea sebetsa. Ha e le hantle, ha ke mobe kapa hona ho loka, ha ke na merero e mebe kapa litabatabelo tsa boithati, ke ntho ea ka feela, ’me ke hloka ho phela le eona ka tsela e itseng.

Andrei: Haufinyane tjena motho e mong le e mong o ile a qala ho bua ka ho itlhokomela bakeng sa li-introverts, le litsebo tse bonolo ka kakaretso. U ka re'ng ka see?

Cliff: E, ke eona temohisiso le thuto eo ke ileng ka ithuta eona tlhalong ea ka le mosali oa ka. Seo ke ileng ka ithuta sona tlhalong ke ho utloisisa. Ke kamoo ke ileng ka qala ho utloisisa batho ba bang kateng. Utloisisa hore na puisano ena e sebetsa joang. Sena se ile sa lebisa ho sibollotsoeng ka ho latellana. Ho bile le tlhokomeliso ea hore na ke mang le hore na ke emela eng. Ke etsa eng: mohlomong ke phathahane ka mosebetsi, kapa ke qoba likhohlano, kapa ntho e 'ngoe -' me boemo bona ba ho itseba bo thusa ho ipoloka ke laola. Ka mor'a sena ntho e 'ngoe le e' ngoe e bonolo haholo. Ntho e le 'ngoe eo ke e fumaneng eseng ho' na feela, empa le ho baetsi ba mananeo a mang ke ho se khone ho bua mehopolo ha u le boemong ba khatello ea maikutlo. Ka mohlala, u lutse moo coding, boemong ba ho phalla, ebe ba tla ho uena ba matha 'me ba qala ho hoeletsa ka hysterics hore ho na le ntho e robehileng' me joale mehato e feteletseng e tla nkoa khahlanong le uena. 'Me u ke ke ua bua lentsoe hobane u le boemong ba khatello ea maikutlo. Tsebo e fumanoeng e u lumella hore u itokisetse motsotso ona, u pholohe 'me u fetele pele ho moralo oa ho khutlela morao, ka mor'a moo u ka etsa ho hong. Ho joalo, ha u qala ho hlokomela hore na tsohle li sebetsa joang, ke ketsahalo e kholo e fetolang bophelo. 
Ke ne ke sa khone ho fumana mantsoe a nepahetseng, empa ke ile ka hopola tatellano ea liketso. Taba ke hore karabelo ena ke ea 'mele joalo ka ha e bua ka mantsoe,' me u hloka sebaka. Sebaka se joalo, ka kutloisiso ea Zen. Sena ke sona hantle se lokelang ho hlalosoa, ebe hang-hang u suthela ka thōko - ho tloha ka 'mele feela. Ha ke khutsa ka mantsoe, ke khona ho sebetsana le boemo ka maikutlo. Ha adrenaline e fihla bokong ba hau, e u fetola mokhoa oa ho loana kapa oa sefofane, ha u sa khona ho bua letho, che - joale u sethoto, moenjiniere ea shapang, ea sa khoneng ho arabela hantle kapa ho emisa tlhaselo, 'me mohlaseli o lokolohile. ho hlasela kgafetsa. U tlameha ho qala ho ba uena hape, u fumane taolo hape, u tsoe mokhoeng oa "ntoa kapa sefofane".

'Me bakeng sa sena re hloka sebaka sa mantsoe. Sebaka sa mahala feela. Haeba u bua ntho leha e le efe ho hang, joale u ka bua hantle joalo, 'me u tsamaee' me u iphumanele "sebaka" bakeng sa hau: tsamaea ho tsamaea serapeng sa boikhathollo, u iphumane u le ka shaoareng - ha ho tsotellehe. Ntho e ka sehloohong ke ho itokolla ka nakoana boemong boo. Hang ha u tima bonyane metsotsoana e seng mekae, taolo ea khutla, u qala ho nahana ka hloko. "Ho lokile, ha ke sethoto sa mofuta o itseng, ha ke etse lintho tse hlokang kelello, ke motho ea molemo haholo." Hang ha u se u khonne ho ikholisa, ke nako ea ho fetela mohatong o latelang: ho utloisisa se etsahetseng. U ile ua hlaseloa, tlhaselo e tsoa moo u neng u sa e lebella, e ne e le ho lalla ho se tšepahale, ho mpe. Sena se sebe. Mohato o latelang ke ho utloisisa hore na ke hobane'ng ha mohlaseli a ne a hloka sena. Ha e le hantle, hobane'ng? Mohlomong hobane eena ka boeena o halefile? Ke hobane'ng ha a hlanya? Ka mohlala, hobane o ile a ithetsa ’me a sitoa ho amohela boikarabelo? Ena ke mokhoa oa ho sebetsana le boemo bohle ka hloko. Empa sena se hloka sebaka sa ho tsamaisa, sebaka sa mantsoe. Mohato oa pele ke ho khaotsa ho bua. Qoba ho buisana ka mantsoe. E hlakole, tsamaea kapele kamoo ho ka khonehang. Haeba e le puisano ea mohala, koala feela - bona ke tsebo eo ke ithutileng eona ha ke buisana le mosali oa ka oa mehleng. Haeba moqoqo o sa tsamaee hantle, e-re feela "sala hantle" ebe u koala mohala. Ho tsoa ka lehlakoreng le leng la mohala: "blah blah blah", u araba: "ee, sala!" ebe o fanyeha. U qeta moqoqo feela. Metsotso e mehlano hamorao, ha matla a ho nahana ka mokhoa o utloahalang a khutlela ho uena, u se u pholile hanyenyane, hoa khoneha ho nahana ka ntho e 'ngoe le e' ngoe, se etsahetseng le se tla etsahala ka mor'a moo. 'Me u qale ho etsa karabo e nahannoeng, ho e-na le ho itšoara feela ka lebaka la maikutlo. Ho 'na, katleho ea ho itseba e bile 'nete ea hore ha ke le tlas'a khatello ea maikutlo, ha ke khone ho bua. Ho tsoa boemong bona, ho nahana le ho rera mokhoa oa ho arabela le ho lefella mathata - tsena ke mehato e nepahetseng ha u sa khone ho bua. Tsela e bonolo ka ho fetisisa ke ho baleha boemo boo ho bona khatello ea maikutlo e iponahatsang le ho khaotsa ho kenya letsoho khatellong ena. Ka mor'a moo u khona ho nahana, ha u khona ho nahana, u khona ho bua, joalo-joalo.

Ka tsela, lekhotleng, 'muelli oa molao ea hanyetsang o leka ho etsa sena ho uena - joale ho hlakile hore na ke hobane'ng. Hobane o na le matla a ho u hatella hore u be boemong boo u sitoang le ho bitsa lebitso la hao, mohlala. Ka kutloisiso ea sebele, u ke ke ua khona ho bua. Haeba sena se ka u etsahalla, 'me ha u tseba hore u tla iphumana u le sebakeng seo lintoa tsa molomo li ntseng li kupa, sebakeng se kang lekhotla, joale u ka tla le 'muelli oa hau oa molao. Mmueledi o tla o emela mme a emise tlhaselo ya molomo, mme o tla e etsa ka tsela ya molao ka botlalo, mme sebaka se lahlehileng sa Zen se tla kgutlela ho wena. Ka mohlala, ke ile ka tlameha ho letsetsa lelapa la ka ka makhetlo a 'maloa, moahloli o ne a le botsoalle haholo ka sena, empa 'muelli oa molao ea hanyetsang o ile a hoeletsa a ba a nkomanya, ke ne ke sitoa le ho fumana lentsoe ka bohale. Maemong ana, ho sebelisa mokena-lipakeng ho sebetsa hantle bakeng sa ka. Mokena-lipakeng o emisa khatello ena eohle e u tšollang ka molapo o sa khaotseng, o fumana sebaka se hlokahalang sa Zen, 'me ka eona bokhoni ba ho bua boa khutla. Ena ke karolo ea tsebo eo ho eona ho nang le lintho tse ngata tseo u ka ithutang tsona, tse ngata tseo u ka li fumanang ka hare ho uena, 'me sena sohle se fetoha liqeto tse phahameng tsa leano tse fapaneng ho batho ba fapaneng. Batho ba bang ha ba na mathata a hlalositsoeng ka holimo; hangata, batho bao e leng litsebi tsa ho rekisa ha ba na bona. Batho bana bohle ba iphelisang ka mantsoe - libini tse tummeng, liroki, baetapele ba bolumeli le bo-ralipolotiki, kamehla ba na le seo ba ka se buang. Ha ba na mathata a joalo, empa ke na le ona.

Andrei: E ne e le ... e sa lebelloang. Ke hantle, re se re buile haholo 'me ke nako ea ho felisa puisano ena. Ka sebele re tla kopana kopanong ’me re tla khona ho ntšetsa pele lipuisano tsena. Ke tla u bona Hydra!

U ka tsoela pele moqoqo oa hau le Cliff kopanong ea Hydra 2019, e tla tšoaroa ka July 11-12, 2019 St. Petersburg. O tla tla ka tlaleho "Boiphihlelo ba Azul Hardware Transactional Memory". Litekete li ka rekoa webosaeteng ea semmuso.

Source: www.habr.com

Eketsa ka tlhaloso