Nnukwu mkparịta ụka na Cliff Click, nna nke mkpokọta JIT na Java

Nnukwu mkparịta ụka na Cliff Click, nna nke mkpokọta JIT na JavaN'elu ugwu Pịa - CTO nke Cratus ( sensọ IoT maka mmezi usoro), onye nchoputa na onye nchoputa nke otutu mmalite (gụnyere Rocket Realtime School, Neurensic na H2O.ai) nwere ọtụtụ ụzọ ọpụpụ na-aga nke ọma. Cliff dere nchịkọta mbụ ya mgbe ọ dị afọ 15 (Pascal maka TRS Z-80)! A maara ya nke ọma maka ọrụ ya na C2 na Java (Oké Osimiri Nodes IR). Onye nchịkọta akụkọ a gosiri ụwa na JIT nwere ike ịmepụta koodu dị elu, nke bụ otu n'ime ihe ndị na-eme ka Java pụta dị ka otu n'ime usoro ngwanrọ ọgbara ọhụrụ. Mgbe ahụ, Cliff nyeere Azul Systems aka iji wuo 864-core mainframe na sọftụwia Java dị ọcha nke kwadoro GC kwụsịtụrụ na ikpo 500-gigabyte n'ime milliseconds 10. N'ozuzu, Cliff jisiri ike rụọ ọrụ na akụkụ niile nke JVM.

 
Habrapost a bụ nnukwu ajụjụ ọnụ a na Cliff mere. Anyị ga-ekwu maka isiokwu ndị a:

  • Ntughari gaa na nkwalite ọkwa dị ala
  • Olee otú ime a nnukwu refactoring
  • Ụdị ọnụ ahịa
  • Ọzụzụ kacha mma dị ala
  • Ihe atụ bara uru nke nkwalite arụmọrụ
  • Kedu ihe kpatara ịmepụta asụsụ mmemme nke gị
  • Ịrụ ọrụ Injinia
  • Ihe ịma aka nka nka
  • Obere maka ntinye aha aha na multi-cores
  • Ihe ịma aka kasịnụ na ndụ

Ọ bụ:

  • Andrey Satarin sitere na Ọrụ Weebụ Amazon. N'ime ọrụ ya, o jisiri ike rụọ ọrụ dị iche iche: ọ nwalere NewSQL na-ekesa nchekwa data na Yandex, usoro nchọpụta igwe ojii na Kaspersky Lab, egwuregwu ọtụtụ egwuregwu na Mail.ru na ọrụ maka ịgbakọ ọnụ ahịa mgbanwe mba ọzọ na Deutsche Bank. Nwere mmasị ịnwale nnukwu azụ azụ na sistemụ kesaa.
  • Vladimir Sitnikov sitere na Netcracker. Afọ iri nke ọrụ na arụmọrụ na scalability nke NetCracker OS, ngwanrọ nke ndị na-ahụ maka telecom na-eji rụọ ọrụ netwọk na usoro njikwa akụrụngwa netwọkụ. Nwere mmasị na okwu arụmọrụ Java na Oracle Database. Onye dere ihe karịrị iri na abuọ nkwalite arụmọrụ na onye ọkwọ ụgbọ ala PostgreSQL JDBC.

Ntughari gaa na nkwalite ọkwa dị ala

Andrei: Ị bụ nnukwu aha n'ụwa nke mkpokọta JIT, Java, na ọrụ arụmọrụ n'ozuzu, nri? 

Nnụnụ ugwu: Ọ dị ka nke ahụ!

Andrei: Ka anyị malite na ajụjụ ụfọdụ gbasara ọrụ arụmọrụ. Kedu ihe ị chere gbasara nhọrọ n'etiti nkwalite ọkwa dị elu na nke dị ala dị ka ịrụ ọrụ na ọkwa CPU?

Nnụnụ ugwu: Ee, ihe niile dị mfe ebe a. Koodu kachasị ngwa ngwa bụ nke na-anaghị agba ọsọ. Ya mere, ịkwesịrị ịmalite site na ọkwa dị elu, rụọ ọrụ na algọridim. Ihe nrịbama O nke ka mma ga-akụtu akara ngosi ka njọ, ma ọ bụrụ na ụfọdụ nnukwu nkwụsi ike na-etinye aka. Ihe ndị dị ala na-aga ikpeazụ. Dị ka ọ na-adịkarị, ọ bụrụ na i meela nke ọma ngwungwu gị ndị ọzọ nke ọma ma a ka nwere ihe na-atọ ụtọ fọdụrụ, nke ahụ bụ ọkwa dị ala. Mana ka esi amalite site na ọkwa dị elu? Kedu ka ị ga-esi mara na arụla ọrụ dị elu zuru oke? Ọfọn... ọ dịghị ụzọ. Enweghị ntụzi aka emebere. Ịkwesịrị ịghọta nsogbu ahụ, kpebie ihe ị ga-eme (ka ị ghara ime ihe ndị na-adịghị mkpa n'ọdịnihu) wee nwee ike ikpughe onye profaịlụ, nke nwere ike ikwu ihe bara uru. N'oge ụfọdụ, gị onwe gị ghọtara na ị kpochapụrụ ihe ndị na-adịghị mkpa na oge eruola ime ụfọdụ nlegharị anya dị ala. Nke a bụ n'ezie ụdị nka pụrụ iche. E nwere ọtụtụ ndị na-eme ihe ndị na-adịghị mkpa, ma na-agba ọsọ ngwa ngwa na ha enweghị oge ichegbu onwe ha banyere mmepụta ihe. Mana nke a bụ ruo mgbe ajụjụ ahụ bilitere n'ezoghị ọnụ. Na-emekarị 99% nke oge ọ dịghị onye na-eche banyere ihe m na-eme, ruo oge mgbe ihe dị mkpa na-abịa n'ụzọ dị oké egwu na ọ dịghị onye na-eche banyere ya. Na ebe a onye ọ bụla na-amalite ịkparị gị maka "ihe kpatara na ọ naghị arụ ọrụ nke ọma site na mmalite." N'ozuzu, a na-enwe ihe ọ bụla iji melite arụmọrụ. Mana 99% nke oge ị nweghị onye ndu! Naanị ị na-agbalị ime ka ihe na-arụ ọrụ na usoro ị na-achọpụta ihe dị mkpa. Ị pụghị ịma tupu oge eruo na mpempe a kwesịrị ka ọ bụrụ nke zuru oke, ya mere, n'eziokwu, ị ghaghị ịdị mma n'ihe niile. Mana nke a agaghị ekwe omume ma ị naghị eme ya. A na-enwe ọtụtụ ihe iji dozie - na nke ahụ bụ ihe nkịtị.

Olee otú ime a nnukwu refactoring

Andrei: Kedu ka ị si arụ ọrụ na arụmọrụ? Nke a bụ nsogbu na-agafe agafe. Dịka ọmụmaatụ, ọ dịtụla mgbe ị rụchara ọrụ na nsogbu ndị na-esite na nkwụsị nke ọtụtụ ọrụ dị adị?

Nnụnụ ugwu: M na-agbalị izere ya. Ọ bụrụ na m maara na arụmọrụ ga-abụ ihe iseokwu, m na-eche banyere ya tupu m amalite koodu, karịsịa na data Ọdịdị. Ma ọtụtụ mgbe, ị na-achọpụta ihe a niile ma emechaa. Ma mgbe ahụ, ị ​​​​ga-aga n'ụzọ dị oke egwu ma mee ihe m na-akpọ "degharịa na imeri": ịkwesịrị ijide nnukwu iberibe. A ka ga-edegharị ụfọdụ koodu ahụ n'ihi nsogbu arụmọrụ ma ọ bụ ihe ọzọ. N'agbanyeghị ihe kpatara ịdegharị koodu, ọ fọrọ nke nta ka ọ bụrụ mgbe niile ka ọ ka mma idegharị ibe buru ibu karịa obere mpempe akwụkwọ. N'oge a, onye ọ bụla na-amalite ịma jijiji na egwu: "Oh Chineke m, ị nweghị ike imetụ koodu dị ukwuu!" Mana n'ezie, usoro a fọrọ nke nta ka ọ bụrụ mgbe niile na-arụ ọrụ ka mma. Ịkwesịrị iburu nnukwu nsogbu ozugbo, see nnukwu okirikiri gburugburu ya wee sị: M ga-edegharị ihe niile dị n'ime okirikiri. Ókè ahụ pere mpe karịa ọdịnaya dị n'ime ya nke kwesịrị ka edochi ya. Ma ọ bụrụ na ndị dị otú ahụ delineation nke ókè-enye gị ohere ịrụ ọrụ n'ime zuru okè, aka gị bụ free, mee ihe ị chọrọ. Ozugbo ị ghọtara nsogbu ahụ, usoro idegharị ahụ dị mfe karị, ya mere were nnukwu anụ!
N'otu oge ahụ, mgbe ị na-eme nnukwu idegharị ma ghọta na arụmọrụ ga-abụ nsogbu, ị nwere ike ịmalite ichegbu onwe ya ozugbo. Nke a na-atụgharịkarị ka ọ bụrụ ihe dị mfe dị ka "Edoghachila data, jikwaa data ozugbo enwere ike, mee ka ọ dị ntakịrị." Na nnukwu edegharị, enwere ụzọ ọkọlọtọ iji melite arụmọrụ. Na ọ fọrọ nke nta ka ọ bụrụ mgbe niile na-agbagharị na data.

Ụdị ọnụ ahịa

Andrei: N'otu n'ime pọdkastị ị kwuru maka ụdị ọnụ ahịa na ọnọdụ nke nrụpụta. Ị nwere ike ịkọwa ihe ị pụtara na nke a?

Nnụnụ ugwu: N'ezie. A mụrụ m na oge mgbe arụmọrụ processor dị oke mkpa. Na oge a na-alọghachi ọzọ - akara aka abụghị nke enweghị mgbagha. Amalitere m ibi n'oge ígwè ọrụ ndị nwere bit asatọ; kọmputa mbụ m ji 256 bytes arụ ọrụ. Kpọmkwem bytes. Ihe niile dị nnọọ obere. A ghaghị ịgụta ntụziaka, ka anyị na-amalitekwa ibuli nchịkọta asụsụ mmemme, asụsụ ndị ahụ na-amalitewanye. Enwere onye na-agbakọta, mgbe ahụ Basic, mgbe ahụ, C, na C na-elekọta ọtụtụ nkọwa, dị ka ntinye aha na ntụziaka ntụziaka. Ma ihe niile doro anya n'ebe ahụ, ma ọ bụrụ na m mere ihe atụ na ihe atụ nke mgbanwe, mgbe ahụ, m ga-ebu ibu, na ọnụ ahịa ntụziaka a mara. Akụrụngwa na-emepụta ọnụọgụ ọnụọgụ igwe nke igwe, yabụ enwere ike ịgbakọ ọsọ igbu ihe dị iche iche naanị site na ịgbakwunye ntuziaka niile ị ga-agba. Enwere ike ịgbakwunye / ule / alaka / oku / ibu / ụlọ ahịa ọ bụla wee kwuo: nke ahụ bụ oge igbu gị. Mgbe ị na-arụ ọrụ na-emeziwanye arụmọrụ, ị ga-aṅa ntị na ọnụọgụgụ ndị kwekọrọ na obere okirikiri ọkụ. 
Ma ozugbo ị gbanwere Java, Python na ihe ndị yiri ya, ị na-apụ ngwa ngwa na ngwaike dị ala. Kedu ụgwọ ọrụ ịkpọ getter na Java? Ọ bụrụ na JIT na HotSpot ziri ezi inlined, ọ ga-ebu, ma ọ bụrụ na o meghị nke a, ọ ga-abụ oku ọrụ. Ebe ọ bụ na oku ahụ dị na akaghị ọkụ, ọ ga-ewepụ njikarịcha ndị ọzọ na akaghị ya. Ya mere, ezigbo ego ga-adị elu karịa. Na ị ozugbo hapụ ikike ilele otu koodu wee ghọta na anyị kwesịrị igbu ya na usoro ọsọ elekere processor, ebe nchekwa na cache eji. Ihe a niile na-adọrọ mmasị naanị ma ọ bụrụ na ị banye na arụmọrụ.
Ugbu a, anyị na-ahụ onwe anyị na ọnọdụ ebe processor ọsọ na-esiri ike amụba maka afọ iri. Oge ochie alaghachila! Ị nweghịzi ike ịtụkwasị obi na arụmọrụ nwere otu eriri dị mma. Mana ọ bụrụ na ị banye na kọmputa na mberede, ọ siri ike nke ukwuu, onye ọ bụla na-ele gị anya dịka James Bond. Mgbatị ugboro iri ebe a na-emekarị n'ebe mmadụ mejọrọ ihe. Concurrency chọrọ ọtụtụ ọrụ. Iji nweta ọsọ ọsọ XNUMXx ahụ, ịkwesịrị ịghọta ụdị ọnụ ahịa. Kedu ihe na ego ole ka ọ na-eri? Na ime nke a, ịkwesịrị ịghọta otú ire si dabara na ngwaike dị n'okpuru.
Martin Thompson họọrọ nnukwu okwu maka blọọgụ ya Mechanical ọmịiko! Ịkwesịrị ịghọta ihe ngwaike na-aga ime, otu esi eme ya kpọmkwem, na ihe kpatara o ji eme ihe ọ na-eme na mbụ. N'iji nke a, ọ dị mfe ịmalite ịgụ ntụziaka na ịchọpụta ebe oge igbu ya na-aga. Ọ bụrụ na ịnweghị ọzụzụ kwesịrị ekwesị, ị na-achọ nwamba ojii n'ime ụlọ gbara ọchịchịrị. M na-ahụ ndị mmadụ na-ebuli arụmọrụ mgbe niile ndị na-amaghị ihe hell ha na-eme. Ha na-ata ahụhụ nke ukwuu, ha anaghịkwa enwe ọganihu dị ukwuu. Ma mgbe m na-ewere otu koodu ahụ, tụba n'ime obere hacks ole na ole ma nweta ọsọ ọsọ ise ma ọ bụ iri, ha dị ka: nke ọma, nke ahụ adịghị mma, anyị amaraworị na ị ka mma. ịtụnanya. Kedu ihe m na-ekwu ... ihe nlereanya ọnụ ahịa bụ maka ụdị koodu ị na-ede na ngwa ngwa ọ na-agba ọsọ na nkezi na nnukwu foto.

Andrei: Oleekwa otú ị ga-esi tinye ụda olu dị otú ahụ n'isi gị? A na-enweta nke a site na ahụmịhe karịa, ma ọ bụ? Ebee ka ahụmahụ dị otú ahụ si abịa?

Nnụnụ ugwu: Ọfọn, enwetaghị m ahụmahụ m n'ụzọ kachasị mfe. M mmemme na Mgbakọ laa azụ n'oge ị pụrụ ịghọta ọ bụla otu ntụziaka. Ọ na-ada nzuzu, mana kemgbe ahụ usoro nkuzi Z80 ka na-adị n'isi m mgbe niile, na ebe nchekwa m. Anaghị m echeta aha ndị mmadụ n'ime otu nkeji okwu, mana m na-echeta koodu edere afọ 40 gara aga. Ọ na-atọ ọchị, ọ dị ka ọrịa syndrome"ọkà mmụta sayensị nzuzu".

Ọzụzụ kacha mma dị ala

Andrei: Enwere ụzọ dị mfe iji banye?

Nnụnụ ugwu: Ee na mba. Ngwaike anyị niile na-eji agbanwebeghị ihe niile ka oge na-aga. Onye ọ bụla na-eji x86, ewezuga smartphones Arm. Ọ bụrụ na ị naghị eme ụdị ntinye hardcore, ị na-eme otu ihe ahụ. Ọ dị mma, ọzọ. Ntuziaka ahụ agbanwebeghịkwa kemgbe ọtụtụ narị afọ. Ịkwesịrị ịga dee ihe na Mgbakọ. Ọ bụghị ọtụtụ, ma ezuru ịmalite ịghọta. Ị na-amụmụ ọnụ ọchị, mana m na-ekwu nke ọma. Ịkwesịrị ịghọta ozi n'etiti asụsụ na ngwaike. Mgbe nke ahụ gasịrị, ịkwesịrị ịga dee ntakịrị ma mee ntakịrị ihe nchịkọta egwuregwu ụmụaka maka obere asụsụ egwuregwu ụmụaka. Ihe eji egwuri egwu pụtara na ekwesịrị ime ya n'oge kwesịrị ekwesị. Ọ nwere ike ịdị mfe nke ukwuu, mana ọ ga-enwerịrị ntuziaka. Omume nke ịmepụta ntụziaka ga-enyere gị aka ịghọta ihe nlereanya ọnụ ahịa maka àkwà mmiri dị n'etiti koodu dị elu nke onye ọ bụla na-ede na koodu igwe na-arụ ọrụ na ngwaike. A ga-akpọ akwụkwọ ozi a ọkụ n'ime ụbụrụ n'oge edere ihe nchịkọta. Ọbụna ihe nchịkọta kachasị mfe. Mgbe nke ahụ gasịrị, ị nwere ike ịmalite ilele Java na eziokwu ahụ bụ na chasm semantic ya dị omimi karị, ọ na-esikwa ike ịmepụta àkwà mmiri n'elu ya. Na Java, ọ na-esi ike karị ịghọta ma àkwà mmiri anyị ọ̀ dị mma ma ọ bụ ihe ọjọọ, ihe ga-eme ka ọ daa na ihe na-agaghị eme. Mana ịchọrọ ụdị mmalite ebe ị na-elele koodu ahụ wee ghọta: "Ee, a ga-etinye onye na-enweta ihe a oge ọ bụla." Ma mgbe ahụ, ọ na-apụta na mgbe ụfọdụ nke a na-eme, ma e wezụga ọnọdụ ahụ mgbe usoro ahụ dị oke ibu, na JIT na-amalite itinye ihe niile. Enwere ike ibu amụma na arụmọrụ nke ebe ndị dị otú ahụ ozugbo. Na-emekarị getters na-arụ ọrụ nke ọma, ma mgbe ahụ ị na-ele anya na nnukwu loops na-ekpo ọkụ ma chọpụta na e nwere ụfọdụ oku ọrụ na-ese n'elu ebe ahụ na-amaghị ihe ha na-eme. Nke a bụ nsogbu na iji getters eme ihe n'ọtụtụ ebe, ihe kpatara na etinyeghị ha n'akwụkwọ bụ na o doghị anya ma ha bụ ndị na-agba ọsọ. Ọ bụrụ na ị nwere nnukwu koodu koodu, ị nwere ike icheta ya wee kwuo: nke a bụ onye na-ese ihe, nke a bụkwa ihe nhazi. Na nnukwu koodu isi, ọrụ ọ bụla na-ebi akụkọ ihe mere eme nke ya, nke, n'ozuzu, ọ bụghị onye ọ bụla maara. Onye profaịlụ na-ekwu na anyị tụfuru 24% nke oge ụfọdụ na akaghị aka ma ghọta ihe loop a na-eme, anyị kwesịrị ileba anya na ọrụ ọ bụla n'ime. Ọ gaghị ekwe omume ịghọta nke a na-amụghị ọrụ ahụ, nke a na-ebelatakwa usoro nghọta nke ọma. Ọ bụ ya mere na anaghị m eji getters na setters, eruola m ọkwa ọhụrụ!
Ebee ka ị ga-enweta ihe nlereanya ọnụ ahịa? Ọfọn, ị nwere ike ịgụ ihe, n'ezie ... Ma echere m na ụzọ kacha mma bụ ime ihe. Ime obere nchịkọta ihe ga-abụ ụzọ kachasị mma iji ghọta ihe nlereanya ọnụ ahịa ma tinye ya n'isi gị. Obere nchịkọta nke ga-adabara maka mmemme ngwa ngwa ngwa ngwa bụ ọrụ maka onye mbido. Ọfọn, m na-ekwu, ọ bụrụ na i nwere nkà mmemme, mgbe ahụ nke ahụ kwesịrị ezuru. Ihe ndị a niile dị ka ịkọwapụta eriri nke ị nwere dị ka ụdị okwu algebra, wepụ ntuziaka maka ịrụ ọrụ mgbakọ na mwepụ n'ebe ahụ n'usoro ziri ezi, na-ewere ụkpụrụ ziri ezi site na ndekọ - a na-eme ihe a otu ugboro. Ma ka ị na-eme ya, a ga-ebipụta ya n'ụbụrụ gị. Echere m na onye ọ bụla maara ihe onye nchịkọta na-eme. Na nke a ga-enye nghọta nke ụdị ọnụ ahịa.

Ihe atụ bara uru nke nkwalite arụmọrụ

Andrei: Kedu ihe ọzọ ị kwesịrị ịṅa ntị mgbe ị na-arụ ọrụ na-arụpụta ihe?

Nnụnụ ugwu: Ọdịdị data. Site n'ụzọ, ee, akụzibeghị m klas ndị a ogologo oge ... Ụlọ akwụkwọ roket. Ọ na-atọ ụtọ, ma ọ chọrọ mgbalị dị ukwuu, enwekwara m ndụ! Ọ DỊ MMA. Ya mere, n'otu n'ime klas ndị buru ibu ma na-adọrọ mmasị, "Olee ebe arụmọrụ gị na-aga," m nyere ụmụ akwụkwọ ihe atụ: a na-agụ gigabytes abụọ na ọkara nke data fintech site na faịlụ CSV wee gbakọọ ọnụ ọgụgụ nke ngwaahịa ndị e rere. . data ahịa akara oge niile. Ngwungwu UDP tụgharịrị gaa n'ụdị ederede kemgbe afọ 70. Chicago Mercantile Exchange - ụdị ihe niile dị ka bọta, ọka, soybean, ihe ndị dị otú ahụ. Ọ dị mkpa ịgụta ngwaahịa ndị a, ọnụ ọgụgụ nke azụmahịa, nkezi olu mmegharị nke ego na ngwongwo, wdg. Ọ mara mma mgbakọ na mwepụ azụmaahịa dị mfe: chọta koodu ngwaahịa (nke ahụ bụ mkpụrụedemede 1-2 na tebụl hash), nweta ego ahụ, tinye ya na otu n'ime usoro azụmaahịa, gbakwunye olu, tinye uru, yana ihe abụọ ọzọ. Math dị mfe. Ihe mmejuputa ihe egwuregwu ụmụaka dị nnọọ mfe: ihe niile dị na faịlụ, m na-agụ faịlụ ahụ ma na-agafe na ya, na-ekesa ihe ndekọ nke onye ọ bụla n'ime eriri Java, na-achọ ihe ndị dị mkpa n'ime ha ma na-agbakwụnye ha dị ka mgbakọ na mwepụ a kọwara n'elu. Ma ọ na-arụ ọrụ na ụfọdụ obere ọsọ.

Site na usoro a, o doro anya ihe na-eme, yana myirịta kọmputa agaghị enyere aka, nri? Ọ na-apụta na enwere ike nweta mmụba ugboro ise na arụmọrụ naanị site na ịhọrọ usoro data ziri ezi. Nke a na-eju ọbụna ndị mmemme nwere ahụmahụ! N'okwu m, aghụghọ bụ na ị gaghị eme oke ebe nchekwa na akaghị ọkụ. Ọ dị mma, nke a abụghị eziokwu niile, mana n'ozuzu - ịkwesighi ịkọwapụta "otu oge na X" mgbe X buru ibu. Mgbe X bụ gigabytes abụọ na ọkara, ị gaghị ekenye ihe ọ bụla "otu ugboro n'akwụkwọ ozi", ma ọ bụ "otu oge n'ahịrị", ma ọ bụ "otu ugboro n'ọhịa", ihe ọ bụla dị otú ahụ. Nke a bụ ebe a na-eji oge. Kedu ka nke a si arụ ọrụ? Were ya na m na-akpọ oku String.split() ma ọ bụ BufferedReader.readLine(). Readline na-eme eriri site na nhazi nke bytes nke rutere na netwọk ahụ, otu ugboro maka ahịrị ọ bụla, maka nke ọ bụla n'ime narị nde ahịrị. Ana m ewere ahịrị a, tuwaa ya tufuo. Kedu ihe kpatara m ji atụfu ya - nke ọma, edozila m ya, nke ahụ bụ ihe niile. Ya mere, maka byte ọ bụla na-agụ site na 2.7G ndị a, a ga-ede mkpụrụedemede abụọ n'ahịrị, ya bụ, ugbua 5.4G, na anaghị m achọ ha maka ihe ọ bụla ọzọ, ya mere a na-atụfu ha. Ọ bụrụ na ị na-ele anya na ebe nchekwa bandwit, anyị na-ebu 2.7G na-aga site na ebe nchekwa na ebe nchekwa ụgbọ ala na processor, na mgbe ahụ ugboro abụọ ka e zigara na akara dina na ebe nchekwa, na ihe niile a na-frayed mgbe ọhụrụ ọ bụla akara. Ma m kwesịrị ịgụ ya, ngwaike na-agụ ya, ọ bụrụgodị na ihe niile na-agbaji emechaa. M ga-edekwa ya n'ihi na m mepụtara ahịrị na cache juru - cache enweghị ike ịnweta 2.7G. Ya mere, maka byte ọ bụla m na-agụ, m na-agụ abụọ bytes na dee abụọ ọzọ bytes, na n'ikpeazụ ha nwere 4: 1 ratio - na nke a ruru anyị na-ala n'iyi ebe nchekwa bandwit. Ma mgbe ahụ ọ na-apụta na ọ bụrụ na m na-eme ya String.split() - nke a abụghị oge ikpeazụ m na-eme nke a, enwere ike ịnwe mpaghara 6-7 ọzọ n'ime. Ya mere, koodu kpochapụla nke ịgụ CSV wee tụgharịa eriri ahụ na-emebi ihe dịka 14: 1 nke bandwit ebe nchekwa ị ga-achọ n'ezie. Ọ bụrụ na ị tụfuo nhọrọ ndị a, ị nwere ike nweta ọsọ ọsọ ugboro ise.

Ọ bụghịkwa ihe siri ike otú ahụ. Ọ bụrụ na ilele koodu ahụ n'akụkụ aka nri, ihe niile ga-adị mfe ozugbo ị ghọtara nsogbu ahụ. I kwesịghị ịkwụsị ịkenye ebe nchekwa kpamkpam: naanị nsogbu bụ na ị na-ekenye ihe ma ọ nwụọ ozugbo, na n'ụzọ ọ na-ere ọkụ dị mkpa akụ, nke na nke a bụ ebe nchekwa bandwidth. Na ihe a niile na-ebute mbelata nke nrụpụta. Na x86, ị na-achọkarị ọkụ ọkụ nke usoro nhazi, mana ebe a ị gbara ebe nchekwa niile ọkụ na mbụ. Ihe ngwọta bụ iji belata ego nkwụsị. 
Akụkụ ọzọ nke nsogbu ahụ bụ na ọ bụrụ na ị na-agba ọsọ profaịlụ mgbe eriri ebe nchekwa na-agwụ, ozugbo ọ na-eme, ị na-echekarị ka cache laghachi azụ n'ihi na ọ jupụtara na ihe mkpofu nke ị mepụtara, ahịrị ndị ahụ niile. Ya mere, ibu ọ bụla ma ọ bụ ụlọ ahịa na-arụ ọrụ na-aghọ ngwa ngwa, n'ihi na ha na-eduga na cache na-efunahụ - cache dum adịla ngwa ngwa, na-echere ka mkpofu hapụ ya. Ya mere, onye profaịlụ ga-egosi ụda mkpọtụ na-ekpo ọkụ na-ekpo ọkụ na-agbanye n'ime akaghị aka niile - a gaghị enwe ntụziaka ọkụ dị iche iche ma ọ bụ ebe dị na koodu. Naanị mkpọtụ. Ma ọ bụrụ n’ilele okirikiri GC, ha niile bụ Ọgbọ Ntorobịa na oke ọsọ ọsọ - microseconds ma ọ bụ milliseconds kacha. E kwuwerị, ebe nchekwa a niile na-anwụ ozugbo. Ị na-ekenye ọtụtụ ijeri gigabytes, ọ na-egbutu ha, na-egbutu ha, na-egbutukwa ha ọzọ. Ihe a niile na-eme ngwa ngwa. Ọ tụgharịrị na enwere okirikiri GC dị ọnụ ala, mkpọtụ ọkụ n'akụkụ okirikiri dum, mana anyị chọrọ ịnweta ọsọ ọsọ 5x. N'oge a, ihe kwesịrị imechi n'isi gị wee daa: "Gịnị kpatara nke a?!" Egosiputaghi oke nbibi ebe nchekwa na ihe nbipu nke kpochapụrụ; ịkwesịrị ịgba ọsọ counter debugger arụmọrụ ngwaike wee hụ ya n'onwe gị ozugbo. Ma nke a enweghị ike na-enyo enyo ozugbo site na mgbaàmà atọ a. Mgbaàmà nke atọ bụ mgbe ị lere anya n'ihe ị na-eme ka ọ pụta ìhè, jụọ onye profaịlụ, ọ zara: "I mere otu ijeri ahịrị, mana GC rụrụ ọrụ n'efu." Ozugbo nke a mere, ị ga-achọpụta na ị mepụtara ọtụtụ ihe ma gbaa ebe nchekwa niile ọkụ. Enwere ụzọ isi chọpụta nke a, mana o doro anya. 

Nsogbu a dị na nhazi data: ihe owuwu efu na-adabere na ihe ọ bụla na-eme, ọ dị oke ibu, ọ bụ 2.7G na diski, ya mere ịme otu ihe a bụ ihe na-adịghị mma - ịchọrọ ịkwanye ya na netwọk byte nchekwa ozugbo. n'ime ndekọ, ka ị ghara ịgụ-dere n'ahịrị azụ na azụ ugboro ise. Ọ dị nwute, Java anaghị enye gị ụdị ọba akwụkwọ dị ka akụkụ nke JDK na ndabara. Mana nke a bụ obere ihe, nri? N'ụzọ bụ isi, ndị a bụ ahịrị koodu 5-10 nke a ga-eji mejuputa eriri eriri nke gị, nke na-emeghachi omume nke klaasị eriri, ebe ọ bụ ihe mkpuchi gburugburu ebe nchekwa byte dị n'okpuru. N'ihi ya, ọ na-apụta na ị na-arụ ọrụ ọ fọrọ nke nta ka ọ bụrụ na ị na-eji eriri, ma n'eziokwu, ndị na-egosi ihe nchekwa ahụ na-akwaga ebe ahụ, a naghị edepụtakwa ihe ndị na-emepụta ihe n'ebe ọ bụla, ya mere, a na-ejighachi otu buffers ugboro ugboro, na Sistemu arụ ọrụ na-enwe obi ụtọ iwere onwe gị ihe ndị e mere maka ya, dị ka ezoro ezo okpukpu abụọ nke buffers byte ndị a, ị naghịkwa atụgharị site na iyi na-adịghị agwụ agwụ nke data na-enweghị isi. Site n'ụzọ, ị ghọtara na mgbe ị na-arụ ọrụ na GC, a na-ekwe nkwa na nkesa ebe nchekwa ọ bụla agaghị ahụ onye nrụpụta mgbe okirikiri GC ikpeazụ gasịrị? Ya mere, ihe a niile enweghị ike ịdị na cache, mgbe ahụ 100% na-ekwe nkwa ọgbaghara ga-apụta. Mgbe ị na-arụ ọrụ na pointer, na x86, ịwepụ ndekọ na ebe nchekwa na-ewe 1-2 elekere cycles, na ozugbo nke a mere, ị na-akwụ ụgwọ, kwụọ ụgwọ, kwụọ ụgwọ, n'ihi na ebe nchekwa bụ ihe niile. cache itoolu – na nke a bụ ọnụ ahịa nke ebe nchekwa oke. Ezigbo uru.

N'ikwu ya n'ụzọ ọzọ, usoro data bụ ihe kacha sie ike ịgbanwe. Ma ozugbo ị ghọtara na ị họrọla usoro data na-ezighi ezi nke ga-egbu arụmọrụ ma emechaa, a na-enwekarị ọtụtụ ọrụ a ga-arụ, ma ọ bụrụ na i meghị ya, ihe ga-akawanye njọ. Nke mbụ, ịkwesịrị iche echiche banyere usoro data, nke a dị mkpa. Ọnụ ego kachasị ebe a na-adaba na nhazi data abụba, nke na-amalite iji mee ihe n'ụdị "Edepụtala m data Ọdịdị X n'ime usoro data Y n'ihi na ọdịdị Y masịrị m." Mana ọrụ oyiri (nke dị ka ọnụ ala) na-emebi bandwidth ebe nchekwa na ebe ahụ ka a na-eli oge igbu oge niile. Ọ bụrụ na m nwere nnukwu eriri JSON ma achọrọ m ịtụgharị ya ka ọ bụrụ osisi DOM ahaziri ahazi nke POJOs ma ọ bụ ihe, ọrụ nke ịkọwapụta eriri ahụ ma wuo POJO, wee nweta POJO ọzọ ma emechaa, ga-ebute ọnụ ahịa na-enweghị isi - ọ bụ ya. ọ bụghị ọnụ ala. Ewezuga ma ọ bụrụ na ị na-agba ọsọ gburugburu POJOs ọtụtụ oge karịa ka ị na-agba gburugburu eriri. N'aka, ị nwere ike ịnwa imebi eriri ahụ wee wepụta naanị ihe ịchọrọ n'ebe ahụ, na-atụgharịghị ya ka ọ bụrụ POJO ọ bụla. Ọ bụrụ na ihe a niile na-eme n'okporo ụzọ nke achọrọ ịrụ ọrụ kachasị, enweghị POJOs maka gị, ịkwesịrị igwu egwu n'ụzọ ụfọdụ ozugbo.

Kedu ihe kpatara ịmepụta asụsụ mmemme nke gị

Andrei: Ị kwuru na iji ghọta ụdị ọnụ ahịa, ịkwesịrị ide obere asụsụ nke gị ...

Nnụnụ ugwu: Ọ bụghị asụsụ, kama nchịkọta. Asụsụ na mkpokọta bụ ihe abụọ dị iche iche. Ọdịiche kachasị mkpa bụ n'isi gị. 

Andrei: Site n'ụzọ, dịka m maara, ị na-anwale ịmepụta asụsụ nke gị. Maka gịnị?

Nnụnụ ugwu: N'ihi na m nwere ike! Aga m ezumike nka ọkara, yabụ nke a bụ ihe omume ntụrụndụ m. Anọ m na-emejuputa asusu ndị ọzọ n'ime ndụ m niile. Arụkwara m ọrụ nke ukwuu n'ụdị koodu m. Na kwa n'ihi na m na-ahụ nsogbu n'asụsụ ndị ọzọ. Ahụrụ m na e nwere ụzọ ka mma isi mee ihe ndị ama ama. M ga-ejikwa ha. Ike gwụrụ m ịhụ nsogbu n'ime onwe m, na Java, na Python, n'asụsụ ọ bụla ọzọ. M na-ede ugbu a na React Native, JavaScript na Elm dị ka ihe ntụrụndụ na-abụghị maka ezumike nka, kama banyere ọrụ na-arụsi ọrụ ike. M na-edekwa na Python na, o yikarịrị ka ọ ga-anọgide na-arụ ọrụ na mmụta igwe maka Java backends. Enwere ọtụtụ asụsụ a ma ama na ha niile nwere atụmatụ na-atọ ụtọ. Onye ọ bụla dị mma n'ụzọ nke ya ma ị nwere ike ịgbalị ịmekọta atụmatụ ndị a niile. Ya mere, m na-amụ ihe na-amasị m, omume nke asụsụ, na-agbalị ka iwepụta semantics ezi uche. Ma ruo ugbu a, m na-eme nke ọma! N'oge a, m na-alụ na ebe nchekwa semantics, n'ihi na m chọrọ inwe ya dị ka C na Java, na-enweta ike ebe nchekwa nlereanya na ebe nchekwa semantics maka ibu na ụlọ ahịa. N'otu oge ahụ, nwee ụdị nrịbama akpaaka dị ka na Haskell. N'ebe a, m na-agbalị ịgwakọta ụdị ụdị nke Haskell na ọrụ ebe nchekwa na C na Java. Nke a bụ ihe m na-eme n'ime ọnwa 2-3 gara aga, dịka ọmụmaatụ.

Andrei: Ọ bụrụ na ị wulite asụsụ nke na-ewere akụkụ ka mma site na asụsụ ndị ọzọ, ị chere na mmadụ ga-eme ihe na-abụghị: were echiche gị were ha mee ihe?

Nnụnụ ugwu: Nke a bụ kpọmkwem ka asụsụ ọhụrụ si apụta! Gịnị kpatara Java ji yie C? N'ihi na C nwere ezigbo syntax nke onye ọ bụla ghọtara na Java sitere n'ike mmụọ nsọ nke a syntax, na-agbakwunye ụdị nchekwa, array bounds checking, GC, na ha na-emeziwanye ihe ụfọdụ site na C. Ha gbakwunyere nke ha. Mana e nyere ha mmụọ nsọ nke ukwuu, nri? Onye ọ bụla na-eguzo n'ubu ndị dike ndị bịara n'ihu gị - otu a ka e si enwe ọganihu.

Andrei: Dịka m na-aghọta ya, asụsụ gị ga-abụ ebe nchekwa nchekwa. Ị chere maka imejuputa ihe dị ka onye na-agbazinye ego n'aka nchara? Ị lere ya anya, gịnị ka ị chere banyere ya?

Nnụnụ ugwu: Ọfọn, M na-ede C ruo afọ ole na ole, na ndị a niile malloc na free, na-eji aka jikwaa ndụ. Ị mara, 90-95% nke oge ndụ ejiri aka na-achịkwa nwere otu nhazi ahụ. Ọ na-ewutekwa nke ukwuu iji aka mee ya. Ọ ga-amasị m ka onye nchịkọta akụkọ gwa gị naanị ihe na-eme ebe ahụ yana ihe ị nwetara na omume gị. Maka ụfọdụ ihe, onye na-agbazinye ego na-eme nke a n'ime igbe. Na ọ kwesịrị igosipụta ozi na-akpaghị aka, ghọta ihe niile, na ọ bụghịkwa ibu m ibu n'igosi nghọta a. Ọ ga-eme ma ọ dịkarịa ala nyocha mgbapụ mpaghara, ma ọ bụrụ na ọ daa, mgbe ahụ, ọ dị mkpa ịgbakwunye nkọwa nkọwa nke ga-akọwa oge ndụ - na atụmatụ dị otú ahụ dị mgbagwoju anya karịa onye na-agbazinye ego, ma ọ bụ n'ezie ihe ọ bụla na-achọpụta ebe nchekwa. Nhọrọ n'etiti "ihe niile dị mma" na "Anaghị m aghọta ihe ọ bụla" - mba, a ga-enwerịrị ihe ka mma. 
Yabụ, dị ka onye dere ọtụtụ koodu na C, echere m na inwe nkwado maka njikwa ndụ akpaaka bụ ihe kacha mkpa. Ego ole Java na-eji ebe nchekwa na-ejukwa m afọ na isi mkpesa bụ GC. Mgbe ị na-ekenye ebe nchekwa na Java, ị gaghị enwetaghachi ebe nchekwa dị na mpaghara na okirikiri GC ikpeazụ. Nke a abụghị ikpe n'asụsụ ndị nwere njikwa ebe nchekwa kachasị. Ọ bụrụ na ị kpọọ malloc, ị ga-enweta ozugbo ebe nchekwa a na-ejikarị eme ihe. Ị na-emekarị ihe ụfọdụ nwa oge na ebe nchekwa ma weghachite ya ozugbo. Ọ na-alaghachi ozugbo na ọdọ mmiri malloc, na usoro malloc ọzọ na-adọta ya ọzọ. Ya mere, a na-ebelata iji ebe nchekwa n'ezie gaa n'usoro ihe dị ndụ n'otu oge, gbakwunyere ntapu. Ma ọ bụrụ na ihe niile adịghị agbapụta n'ụzọ zuru oke, ọtụtụ n'ime ebe nchekwa na-ejedebe na caches na processor, ọ na-arụ ọrụ ngwa ngwa. Ma na-achọ ọtụtụ njikwa ebe nchekwa akwụkwọ ntuziaka na malloc na free na-akpọ n'usoro ziri ezi, na ebe kwesịrị ekwesị. Nchara nwere ike ijikwa nke a nke ọma n'onwe ya, na n'ọtụtụ ọnọdụ na-enye arụmọrụ ka mma, ebe ọ bụ na a na-ebelata oriri ebe nchekwa ka naanị mgbakọ dị ugbu a - kama ichere okirikiri GC na-esote iji wepụta ebe nchekwa. N'ihi ya, anyị nwetara ụzọ na-adọrọ mmasị iji melite arụmọrụ. Ma dị ike - m pụtara, emere m ihe ndị dị otú ahụ mgbe m na-ahazi data maka fintech, nke a mere ka m nweta ọsọ ọsọ nke ihe dị ka ugboro ise. Nke ahụ bụ nnukwu mmụba mara mma, ọkachasị n'ụwa ebe ndị nrụpụta anaghị aga ngwa ngwa ma anyị ka na-eche ndozi.

Ịrụ ọrụ Injinia

Andrei: Ọ ga-amasị m ịjụ gbasara ọrụ n'ozuzu. Ị bilitere bụrụ onye a ma ama na ọrụ JIT gị na HotSpot wee kwaga Azul, nke bụkwa ụlọ ọrụ JVM. Mana anyị na-arụ ọrụ na ngwaike karịa ngwanrọ. Na mberede, ha gbanwere na Big Data na Machine Learning, na mgbe ahụ na nchọpụta aghụghọ. Kedu ka nke a si mee? Ndị a bụ akụkụ dị iche iche nke mmepe.

Nnụnụ ugwu: M na-eme mmemme ruo ogologo oge ma jisie ike na-amụ ọtụtụ klas dị iche iche. Ma mgbe ndị mmadụ na-asị: "Oh, ị bụ onye mere JIT maka Java!", Ọ na-atọ ọchị mgbe niile. Mana tupu nke ahụ, m na-arụ ọrụ na clone nke PostScript - asụsụ Apple jibu ya maka ndị na-ebi akwụkwọ laser. Ma tupu nke ahụ emebere m mmejuputa asụsụ nke Forth. Echere m na isiokwu nkịtị maka m bụ mmepe ngwá ọrụ. N'ime ndụ m niile, a na m emepụta ngwá ọrụ nke ndị ọzọ na-eji dee mmemme ha dị mma. Ma etinyekwara m aka na mmepe nke sistemu arụ ọrụ, ndị ọkwọ ụgbọ ala, ndị nrụpụta ọkwa ọkwa kernel, asụsụ maka mmepe OS, bụ nke malitere obere ihe, mana ka oge na-aga, ọ bịara dịkwuo mgbagwoju anya. Ma isi isiokwu ka bụ mmepe nke ngwaọrụ. Otu nnukwu akụkụ nke ndụ m gafere n'etiti Azul na Sun, ọ bụkwa maka Java. Ma mgbe m banyere Big Data na Machine Learning, etinyere m okpu mara mma ma kwuo, "Oh, ugbu a anyị nwere nsogbu na-enweghị isi, na enwere ọtụtụ ihe na-adọrọ mmasị na-aga na ndị mmadụ na-eme ihe." Nke a bụ nnukwu ụzọ mmepe ị ga-esi.

Ee, enwere m mmasị na kọmpụta ekesa. Ọrụ mbụ m bụ nwata akwụkwọ na C, na ọrụ mgbasa ozi. Ekesara nke a ịgbakọ na ibe Zilog Z80 nke nakọtara data maka analog OCR, nke ezigbo onye nyocha analog mepụtara. Ọ bụ isiokwu dị jụụ na nke nzuzu kpamkpam. Ma enwere nsogbu, a naghị amata akụkụ ụfọdụ nke ọma, yabụ ị ga-ewepụta foto wee gosi ya onye nwere ike jiri anya ya gụọ ya ma kwuo ihe o kwuru, yabụ enwere ọrụ na data, yana ọrụ ndị a. nwere asụsụ nke ha . Enwere azụ azụ nke na-ahazi ihe a niile - Z80s na-agba ọsọ n'otu aka na ọdụ vt100 na-agba ọsọ - otu onye, ​​​​na enwere ụdị mmemme yiri ya na Z80. Ụfọdụ ebe nchekwa nkịtị na-ekekọrịta Z80 niile n'ime nhazi kpakpando; A na-ekekwa ụgbọ elu azụ azụ, na ọkara nke RAM na-ekerịta n'ime netwọk ahụ, na ọkara ọzọ bụ nke onwe ma ọ bụ gaa na ihe ọzọ. Sistemu na-ekesa na-ekesa nwere mmetụta bara uru yana ebe nchekwa kesara ọkara. Kedu mgbe nke a bụ ... enweghị m ike icheta, ebe dị n'etiti 80s. Ogologo oge gara aga. 
Ee, ka anyị were ya na afọ 30 dị ogologo oge gara aga. Nsogbu ndị metụtara kọmpụta kesara adịla ogologo oge; ndị mmadụ na-alụ ọgụ ogologo oge. Beowulf-ụyọkọ. Ụyọkọ ndị dị otú ahụ dị ka ... Dị ka ọmụmaatụ: e nwere Ethernet na ngwa ngwa x86 gị jikọtara na Ethernet a, ma ugbu a, ịchọrọ ịnweta ebe nchekwa nkekọrịta adịgboroja, n'ihi na ọ dịghị onye nwere ike ịme koodu mgbakọ na-ekesa mgbe ahụ, ọ dị oke ike na ya mere e nwere. bụ adịgboroja na-ekekọrịta ebe nchekwa na ibe nchekwa nchekwa na x86, ma ọ bụrụ na ịdegara ibe a akwụkwọ, anyị gwara ndị nrụpụta ndị ọzọ na ọ bụrụ na ha enweta otu ebe nchekwa ahụ, ọ ga-adị mkpa ka ebu gị n'aka gị, ya mere ihe dị ka protocol maka ịkwado. cache coherence pụtara na ngwanrọ maka nke a. Echiche na-adọrọ mmasị. N'ezie, nsogbu bụ ihe ọzọ. Ihe a niile na-arụ ọrụ, ma ị nwetara nsogbu arụmọrụ ngwa ngwa, n'ihi na ọ dịghị onye ghọtara ụdị arụmọrụ na ọkwa zuru oke - ihe usoro ebe nchekwa dị na ebe ahụ, otu esi ejide n'aka na ọnụ ọgụgụ ahụ adịghị ping ọ bụla, na ihe ndị ọzọ.

Ihe m nwetara na H2O bụ na ọ bụ ndị mmepe n'onwe ha bụ ndị na-ahụ maka ịchọpụta ebe ezoro ezo na ihe yiri ya na ebe ọ na-adịghị. Ewetara m ụdị nzuzo nke mere ka ide koodu arụ ọrụ dị elu dị mfe ma dị mfe. Mana ide koodu na-agba ọsọ ngwa ngwa siri ike, ọ ga-adị njọ. Ịkwesịrị ịgbalịsi ike ide koodu ngwa ngwa, ị ga-eji ụzọ na-abụghị ọkọlọtọ. A na-ahụ koodu breeki na nlele mbụ. N'ihi ya, ị na-edekarị koodu na-agba ọsọ ngwa ngwa, mana ị ga-achọpụta ihe ị ga-eme n'ihe gbasara nchekwa nchekwa. A na-ejikọta ihe ndị a niile na nnukwu arrays na omume ebe ahụ yiri nnukwu arrays na-adịghị agbanwe agbanwe na Java. M pụtara, were ya na eriri abụọ na-ede n'usoro ihe yiri ya, otu n'ime ha na-emeri, nke ọzọ, ya mere, tụfuru, ma ị maghị nke ọ bụ. Ọ bụrụ na ha adịghị agbanwe agbanwe, mgbe ahụ usoro ahụ nwere ike ịbụ ihe ọ bụla ịchọrọ - nke a na-arụ ọrụ nke ọma. Ndị mmadụ na-eche n'ezie maka usoro ọrụ, ha na-etinye ihe na-agbanwe agbanwe na ebe kwesịrị ekwesị, ha na-atụkwa anya nsogbu arụmọrụ metụtara ebe nchekwa na ebe kwesịrị ekwesị. Ma ọ bụghị ya, ha ga-ede naanị koodu n'ụdị loops site na 1 ruo N, ebe N bụ ụfọdụ puku ijeri, na-atụ anya na ikpe niile dị mgbagwoju anya ga-adakọ ozugbo - ọ naghị arụ ọrụ ebe ahụ. Mana na H2O nke a abụghị Java ma ọ bụ Scala; ị nwere ike ịtụle ya “Java mwepu” ma ọ bụrụ na ịchọrọ. Nke a bụ ụdị mmemme doro anya ma yie ka ịde koodu C ma ọ bụ Java dị mfe na loops na arrays. Mana n'otu oge ahụ, enwere ike ịhazi ebe nchekwa na terabytes. M ka na-eji H2O. M na-eji ya site n'oge ruo n'oge na ọrụ dị iche iche - ma ọ ka bụ ihe kachasị ngwa ngwa, ọtụtụ ugboro ngwa ngwa karịa ndị asọmpi ya. Ọ bụrụ na ị na-eme Big Data na data columnar, ọ na-esiri ike ịkụ H2O.

Ihe ịma aka nka nka

Andrei: Kedu ihe bụ nnukwu ihe ịma aka gị n'ọrụ gị niile?

Nnụnụ ugwu: Anyị na-ekwurịta banyere teknuzu ma ọ bụ na-abụghị teknuzu nke okwu? M ga-asị na nnukwu nsogbu abụghị nke teknụzụ. 
Maka nsogbu teknụzụ. M nnọọ meriri ha. Amaghị m ihe kacha ukwuu bụ, mana enwere ụfọdụ ndị mara mma nke were obere oge, mgba nke uche. Mgbe m gara Sun, ejiri m n'aka na m ga-eme ngwa ngwa ngwa ngwa, na ụyọkọ ndị agadi kwuru na nzaghachi na agaghị m aga nke ọma. Mana m gbasoro ụzọ a, degara onye na-achịkọta ihe ndekọ aha, ọ dịkwa ngwa ngwa. Ọ dị ngwa ngwa dị ka C1 nke oge a, mana onye na-ekenye ihe na-eji nwayọ nwayọ n'oge ahụ, na n'echiche ya, ọ bụ nnukwu nsogbu nhazi data. Achọrọ m ya iji dee onye na-edebanye aha eserese eserese na aghọtaghị m nsogbu dị n'etiti nkwupụta koodu na ọsọ, nke dị n'oge ahụ ma dị oke mkpa. Ọ tụgharịrị na usoro data ahụ na-adịkarị karịa cache nha na x86s nke oge ahụ, yabụ, ọ bụrụ na echere m na mbụ na onye na-ekenye aha ga-arụ ọrụ pasent 5-10 nke ngụkọta oge jitter, yabụ n'eziokwu ọ tụgharịrị bụrụ. Pasent 50.

Ka oge na-aga, onye nchịkọta ahụ bịara dị ọcha ma na-arụ ọrụ nke ọma, kwụsịrị ịmepụta koodu dị egwu n'ọtụtụ ọnọdụ, ịrụ ọrụ na-amalitekwa ịdị ka ihe C compiler na-emepụta. . Ọ bụrụ na ị dee koodu dịka C, ị ga-enweta arụmọrụ dịka C n'ọtụtụ ọnọdụ. Ka ị na-aga n'ihu, ka ị na-enweta koodu na asymptotically dabara na ọkwa C, onye na-edebanye aha aha malitere ịdị ka ihe zuru oke ... n'agbanyeghị ma koodu gị na-agba ọsọ ọsọ ma ọ bụ nwayọọ. Anọgidere m na-arụ ọrụ na onye na-ekenye ihe iji mee ka ọ bụrụ nhọrọ kacha mma. Ọ bịara jiri nwayọọ nwayọọ na-eji nwayọọ nwayọọ, ma ọ na-enye ọrụ ka mma na nke ka mma n'ọnọdụ ebe ọ na-enweghị onye ọzọ nwere ike ịnagide ya. Enwere m ike ịbanye n'ime onye na-edebanye aha, lie otu ọnwa nke ọrụ n'ebe ahụ, na mberede, koodu niile ga-amalite ime 5% ngwa ngwa. Nke a mere mgbe oge na-aga na onye na-edebanye aha ya ghọrọ ihe ọrụ nka - onye ọ bụla hụrụ ya n'anya ma ọ bụ kpọọ ya asị, na ndị mmadụ na ụlọ akwụkwọ mmuta jụrụ ajụjụ banyere isiokwu ahụ " gịnị kpatara ihe niile ji mee otú a " akara nyocha, na kedu ihe dị iche. Azịza ya ka bụ otu: onye na-ekenye ihe dabere na agba eserese yana ọrụ nlezianya na koodu nchekwa bụ nha nha ngwa ọgụ nke mmeri, ngwakọta kachasị mma nke ọ nweghị onye nwere ike imeri. Na nke a bụ ihe na-abụghị ihe doro anya. Ihe ọ bụla ọzọ onye na-achịkọta na-eme, e nwere ihe ndị a na-amụ nke ọma, n'agbanyeghị na e webakwara ha n'ọkwa nka. M na-eme mgbe niile ihe ndị kwesịrị ime ka onye na-achịkọta ihe ghọọ ọrụ nka. Ma ọ dịghị nke ọ bụla n'ime ihe ndị a bụ ihe pụrụ iche - ewezuga onye na-ekenye aha. Ihe aghụghọ bụ ịkpachara anya gbutuo n'okpuru ibu na, ma ọ bụrụ na nke a emee (M nwere ike ịkọwa n'ụzọ zuru ezu ma ọ bụrụ na ọ nwere mmasị), nke a pụtara na ị nwere ike inline ọzọ ike ike, na-enweghị ihe ize ndụ nke ịda n'elu a kink na arụmọrụ oge. N'oge ahụ, e nwere ọtụtụ ndị na-achịkọta ọnụ ọgụgụ zuru ezu, bụ́ ndị kpọgidere n'ụgbụgbọ na fhịhịa, bụ́ ndị nwere ndị na-ekenye aha, ma ọ dịghị onye ọzọ pụrụ ime ya.

Nsogbu bụ na ọ bụrụ na ị gbakwunye ụzọ ndị dị n'okpuru inlining, na-amụba ma na-amụba ebe a na-emepụta ihe, usoro nke ụkpụrụ eji eme ihe na-akawanye ọnụ ọgụgụ nke ndekọ aha, ma ị ga-egbutu ha. Ọkwa dị oke egwu na-abịakarị mgbe onye na-ekenye ihe kwụsịrị, na otu ezigbo onye na-achọ maka ịkwafu ga-aba uru ọzọ, ị ga-ere ụfọdụ ihe anụ ọhịa. Uru nke inlining ebe a bụ na ị na-atụfu akụkụ nke elu, n'elu maka ịkpọ na ịchekwa, ị nwere ike ịhụ ụkpụrụ dị n'ime ma nwee ike ịkwalite ha. Ọnụ ego nke inlining bụ na a na-etolite ọnụ ọgụgụ dị ukwuu nke ụkpụrụ ndụ, ma ọ bụrụ na onye na-edebanye aha gị na-ere ọkụ karịa ka ọ dị mkpa, ị ga-efunahụ ozugbo. Ya mere, ọtụtụ ndị na-ekepụta ihe nwere nsogbu: mgbe inlining na-agafe otu ahịrị, ihe niile dị n'ụwa na-amalite igbutu na mmepụta ihe nwere ike ịdaba na ụlọ mposi. Ndị na-emejuputa ihe nchịkọta ahụ na-agbakwunye ụfọdụ heuristics: dịka ọmụmaatụ, ịkwụsị inlining, malite na ụfọdụ nha zuru oke, ebe ọ bụ na oke ga-emebi ihe niile. Nke a bụ otú e si emepụta kink na eserese arụmọrụ - ị inline, inline, arụmọrụ na-eji nwayọọ nwayọọ na-eto eto - wee nwee ọganihu! - ọ na-ada n'ala dị ka jakị ngwa ngwa n'ihi na ị kwadoro oke. Otu a ka ihe niile si arụ ọrụ tupu ọbịbịa Java. Java na-achọ ọtụtụ inlining ọzọ, yabụ na m ga-eme ka onye na-ekenye m na-eme ihe ike karịa ka ọ na-adaba kama ịdaba, ma ọ bụrụ na ị na-agbanye n'ahịrị nke ukwuu, ọ na-amalite ịwụfu, ma mgbe ahụ "ọ dịghị ihe na-agbapụta" oge ka na-abịa. Nke a bụ ihe na-adọrọ mmasị chọpụtara na ọ dị nnọọ bịakwutere m na-enweghị ebe ọ bụla, ọ bụghị ihe doro anya, ma ọ kwụrụ nke ọma. M malitere ime ihe ike wee kpọga m n'ebe Java na C arụmọrụ na-arụ ọrụ n'akụkụ. Ha dị ezigbo nso - Enwere m ike ide koodu Java nke dị ngwa ngwa karịa koodu C na ihe ndị dị otú ahụ, mana na nkezi, na nnukwu foto nke ihe, ha na-atụnyere ya. Echere m na akụkụ nke uru a bụ onye na-edebanye aha, nke na-enye m ohere ịbanye n'ahịrị dị ka onye nzuzu dị ka o kwere mee. Ana m etinye akara ihe niile m na-ahụ. Ajụjụ ebe a bụ ma onye na-ekenye ọrụ na-arụ ọrụ nke ọma, ma nsonaazụ ya bụ koodu na-arụ ọrụ nke ọma. Nke a bụ nnukwu ihe ịma aka: ịghọta ihe a niile ma mee ka ọ rụọ ọrụ.

Obere maka ntinye aha aha na multi-cores

VladimirNsogbu dị ka ntinye aha ndebanye aha dị ka ụdị isiokwu ebighi ebi na-adịghị agwụ agwụ. M na-eche ma ọ dịtụla mgbe echiche nke yiri ihe na-ekwe nkwa wee daa n'omume?

Nnụnụ ugwu: N'ezie! Oke ndebanye aha bụ mpaghara nke ị na-agbalị ịchọta ụfọdụ ọrụ nlekọta ahụike iji dozie nsogbu NP zuru ezu. Ma ị nweghị ike nweta azịza zuru oke, nri? Nke a agaghị ekwe omume. Lee, nchikota tupu oge eruo - ọ na-arụkwa ọrụ adịghị mma. Mkparịta ụka ebe a bụ gbasara ụfọdụ nkezi ikpe. Banyere arụmọrụ a na-ahụkarị, yabụ ị nwere ike ịga tụọ ihe ị chere na ọ bụ arụmọrụ ahụkarị - ka emechara, ị na-arụ ọrụ iji meziwanye ya! Oke ndebanye aha bụ isiokwu gbasara arụmọrụ niile. Ozugbo ị nwere prototype mbụ, ọ na-arụ ọrụ ma na-ese ihe dị mkpa, ọrụ arụmọrụ na-amalite. Ikwesiri imuta itule nke oma. Gịnị mere o ji dị mkpa? Ọ bụrụ na ị nwere data doro anya, ị nwere ike ile anya na mpaghara dị iche iche wee hụ: ee, ọ nyere aka ebe a, ma nke ahụ bụ ebe ihe niile mebiri! Ụfọdụ ezigbo echiche na-abịa, ị na-agbakwunye heuristics ọhụrụ na mberede, ihe niile na-amalite ịrụ ọrụ ntakịrị mma na nkezi. Ma ọ bụ ọ naghị ebido. Enwere m ọtụtụ ikpe ebe anyị na-alụ ọgụ maka arụmọrụ pasent ise nke dị iche na mmepe anyị na onye na-ekepụta ihe gara aga. Na oge ọ bụla ọ dị ka nke a: ebe ị meriri, ebe ị ga-efunahụ. Ọ bụrụ na ị nwere ngwaọrụ nyocha arụmọrụ dị mma, ị nwere ike ịchọta echiche ndị na-efunahụ ma ghọta ihe mere ha ji ada. Ma eleghị anya, ọ bara uru ịhapụ ihe niile dị ka ọ dị, ma ọ bụ ikekwe na-ewere ụzọ dị njọ karị maka imezigharị nke ọma, ma ọ bụ ịpụ na idozi ihe ọzọ. Ọ bụ ụyọkọ ihe niile! Emere m mbanye anataghị ikike a dị mma, mana achọrọ m nke a, na nke a, na nke a - yana mkpokọta mkpokọta ha na-enye ụfọdụ ndozi. Na loners nwere ike ịda. Nke a bụ ọdịdị nke ịrụ ọrụ arụmọrụ na nsogbu NP zuru oke.

Vladimir: Otu na-enweta mmetụta na ihe ndị dị ka eserese na ndị na-ekesa ihe bụ nsogbu nke edozilarị. Ọfọn, e kpebiri maka gị, na-ekpe ikpe site n'ihe ị na-ekwu, ya mere ọ bara uru mgbe ahụ ...

Nnụnụ ugwu: A naghị edozi ya dị ka nke a. Ọ bụ gị ga-emerịrị ya ka ọ bụrụ "edozi". Enwere nsogbu ndị siri ike ma ọ dị mkpa ka edozi ha. Ozugbo emechara nke a, oge eruola ịrụ ọrụ na nrụpụta. Ịkwesịrị ịbịakwute ọrụ a n'otu aka ahụ - mee akara ngosi, na-anakọta metrics, kọwaa ọnọdụ mgbe, mgbe ị tụgharịrị na ụdị gara aga, mbanye anataghị ikike ochie gị malitere ịrụ ọrụ ọzọ (ma ọ bụ ọzọ, kwụsịrị). Akwụsịkwala ruo mgbe ị rụpụtara ihe. Dị ka m na-ekwu, ma ọ bụrụ na e nwere jụụ echiche na-adịghị arụ ọrụ, ma na ubi nke oke nke ndekọ nke echiche ọ bụ mkpokọta adịghị agwụ agwụ. Ị nwere ike, dịka ọmụmaatụ, gụọ akwụkwọ sayensị. Ọ bụ ezie na ugbu a, mpaghara a amalitela iji nwayọọ nwayọọ na-agagharị ma pụta ìhè karịa n'oge ntorobịa ya. Otú ọ dị, enwere ọtụtụ ndị na-arụ ọrụ na mpaghara a na echiche ha niile kwesịrị ịnwale, ha niile na-echere na nku. Ị pụghịkwa ịma otú ha si dị mma ma ọ bụrụ na ị nwara ha. Kedu ka ha si ejikọta na ihe ọ bụla ọzọ dị na onye na-ekenye gị, n'ihi na onye na-ekenye ihe na-eme ọtụtụ ihe, na ụfọdụ echiche agaghị arụ ọrụ na onye na-ekenye gị kpọmkwem, ma na onye ọzọ na-enyefe ha ga-adị mfe. Ụzọ kachasị esi emeri maka onye na-ekenye ihe bụ ịdọrọ ihe ndị na-adịghị ngwa ngwa n'èzí ụzọ isi ma mee ka ọ kewaa n'akụkụ oke nke ụzọ ndị dị nwayọọ. Yabụ ọ bụrụ na ịchọrọ ịgba ọsọ GC, were nwayọ nwayọ, deoptimize, tụfuo ihe dị iche, ihe ahụ niile - ị maara na ihe ndị a dị obere. Ma ha dị ụkọ n'ezie, enyochara m. Ị na-arụkwu ọrụ na ọ na-ewepụ ọtụtụ ihe mgbochi na ụzọ ndị a na-adịghị ngwa ngwa, mana ọ dịghị mkpa n'ihi na ha na-eji nwayọọ na-eme njem. Dịka ọmụmaatụ, pointer null - ọ dịghị eme, nri? Ịkwesịrị ịnwe ọtụtụ ụzọ maka ihe dị iche iche, mana ha ekwesịghị itinye aka na nke bụ isi. 

Vladimir: Kedu ihe ị chere gbasara multi-cores, mgbe enwere ọtụtụ puku cores n'otu oge? Nke a ọ bụ ihe bara uru?

Nnụnụ ugwu: Ihe ịga nke ọma nke GPU na-egosi na ọ bara ezigbo uru!

Vladimir: Ha bụ ndị pụrụ nnọọ iche. Kedu maka ndị nhazi ebumnuche izugbe?

Nnụnụ ugwu: Ọfọn, nke ahụ bụ ụdị azụmahịa Azul. Azịza ya laghachiri n'oge ndị mmadụ hụrụ n'anya n'ezie ịrụ ọrụ a ga-ebu amụma. O siri ike ide koodu myirịta n'oge ahụ. Ụdị nzuzo H2O bụ nke ukwuu, mana ọ bụghị ụdị ebumnuche izugbe. Ikekwe ntakịrị ihe n'ozuzu karịa mgbe ị na-eji GPU. Anyị na-ekwu maka mgbagwoju anya nke ịmepụta ihe dị otú ahụ ma ọ bụ mgbagwoju anya nke iji ya? Dịka ọmụmaatụ, Azul kụziiri m nkuzi na-atọ ụtọ, nke na-abụghị nke doro anya: obere cache bụ ihe nkịtị. 

Ihe ịma aka kasịnụ na ndụ

Vladimir: Kedu maka ihe ịma aka ndị na-abụghị teknụzụ?

Nnụnụ ugwu: Ihe ịma aka kasịnụ bụ ịghara ịdị... obiọma na ịdị mma n'ebe ndị mmadụ nọ. N'ihi ya, ana m ahụ onwe m mgbe nile n'ọnọdụ ndị dị nnọọ egwu. Ndị ebe m maara na ihe na-aga n'ihu, mana amaghị ka esi aga n'ihu na nsogbu ndị ahụ na enweghị ike ịnagide ha. Ọtụtụ nsogbu ndị na-adịte aka, bụ́ ndị na-adịru ọtụtụ iri afọ, bilitere n'ụzọ dị otú a. Eziokwu ahụ bụ na Java nwere C1 na C2 compilers bụ nsonaazụ ozugbo nke a. Eziokwu ahụ bụ na enweghị mkpokọta ọkwa dị iche iche na Java maka afọ iri n'usoro bụkwa nsonaazụ ozugbo. O doro anya na usoro dị otú ahụ dị anyị mkpa, ma o doro anya ihe mere na ọ dịghị. Enwere m nsogbu na otu injinia ... ma ọ bụ otu ndị injinia. N'otu oge, mgbe m malitere ịrụ ọrụ na Sun, m bụ ... Ọ dị mma, ọ bụghị naanị mgbe ahụ, m na-enwekarị echiche nke m na ihe niile. Ma echere m na ọ bụ eziokwu na ị nwere ike were eziokwu nke gị a gwa ya n'isi. Karịsịa ebe ọ bụ na ọ na-awụ akpata oyi n'ahụ m ọtụtụ oge. Ma ọ bụrụ na ụzọ a adịghị amasị gị ... karịsịa ma ọ bụrụ na ị na-ezighị ezi ma na-eme ihe efu ... N'ozuzu, mmadụ ole na ole nwere ike ịnagide ụdị nkwurịta okwu a. Ọ bụ ezie na ụfọdụ nwere ike, dị ka m. Ewulitela m ndụ m dum n'ụkpụrụ ụkpụrụ. Ọ bụrụ na ị gosi m ihe ọjọọ, m ga-atụgharị ozugbo wee sị: ị kwuru nzuzu. N'otu oge ahụ, n'ezie, ana m arịọ mgbaghara na ihe niile, m ga-ahụ uru, ma ọ bụrụ na ọ bụla, ma mee ihe ndị ọzọ ziri ezi. N'aka nke ọzọ, m na-awụ akpata oyi n'ahụ ziri ezi banyere a na-awụ akpata oyi nnukwu pasent nke ngụkọta oge. Ọ naghịkwa arụ ọrụ nke ọma na mmekọrịta gị na ndị mmadụ. Anaghị m agbalị ịdị mma, mana m na-ajụ ajụjụ ahụ n'ezoghị ọnụ. "Nke a agaghị arụ ọrụ, n'ihi na otu, abụọ na atọ." Ma ha dị ka, "Oh!" Enwere nsonaazụ ndị ọzọ nwere ike ịka mma ileghara anya: dịka ọmụmaatụ, ndị mere ka nwunye m gbaa alụkwaghịm na afọ iri nke ịda mbà n'obi mgbe nke ahụ gasịrị.

Ihe ịma aka bụ ọgụ ndị mmadụ na-alụ, na nghọta ha banyere ihe ị nwere ike ime ma ọ bụ enweghị ike ime, ihe dị mkpa na ihe na-adịghị. Enwere ọtụtụ ihe ịma aka gbasara ụdị koodu. M ka na-ede ọtụtụ koodu, na n'ụbọchị ndị ahụ, m ọbụna na-akwụsịlata n'ihi na m na-eme ọtụtụ ihe ndị yiri ya aga-eme na-adịghị mma, kama ilekwasị anya na otu. N'ileghachi anya azụ, edere m ọkara koodu maka Java JIT iwu, iwu C2. Onye na-ede ọsọ ọsọ na-esote dere ọkara ka ọ dị nwayọ, nke na-esote dị ka nwayo, ma ọ bụ mbelata nke ukwuu. Onye nke asaa n'ahịrị a dị nnọọ ngwa ngwa - nke ahụ na-eme mgbe niile! Atụrụ m ọtụtụ koodu aka. M lere anya onye dere ihe, na-enweghị isi, elere m anya na koodu ha, nyochaa nke ọ bụla n'ime ha, ma nọgide na-ede onwe m karịa nke ọ bụla n'ime ha. Usoro a anaghị arụ ọrụ nke ọma na ndị mmadụ. Ihe a anaghị amasị ụfọdụ ndị. Ma mgbe ha na-enweghị ike ijikwa ya, ụdị mkpesa niile na-amalite. Dịka ọmụmaatụ, otu oge a gwara m ka m kwụsị itinye koodu n'ihi na m na-ede koodu nke ukwuu na ọ na-etinye ndị otu ahụ egwu, ihe niile wee dị m ka ihe egwuregwu: dude, ọ bụrụ na ndị otu ndị ọzọ apụọ, m na-edekwa koodu, gị 'ga-atụfu naanị ọkara otu. N'aka nke ọzọ, ọ bụrụ na m na-ede koodu na ị ga-efunahụ ọkara otu, nke ahụ na-ada ka nnọọ ọjọọ management. Ọ dịghị mgbe m chere n'ezie banyere ya, ọ dịghị mgbe m kwuru banyere ya, ma ọ ka bụ ebe m isi. Echiche ahụ nọ na-atụgharị n'azụ n'uche m: "Ị na-achị m ọchị?" Yabụ, nnukwu nsogbu bụ mụ na mmekọrịta mụ na ndị mmadụ. Ugbu a aghọtara m onwe m nke ọma, abụ m onye ndu otu maka ndị mmemme ruo ogologo oge, ma ugbu a, m na-agwa ndị mmadụ ozugbo: ị maara, abụ m onye m bụ, ị ga-emesokwa m ihe - ọ dị mma ma m guzoro ọtọ. Ebe a? Na mgbe ha malitere ime ya, ihe niile rụrụ ọrụ. N'ezie, adịghị m njọ ma ọ bụ dị mma, enweghị m ihe ọjọọ ọ bụla ebumnobi ma ọ bụ ịchọ ọdịmma onwe onye, ​​ọ bụ naanị m mkpa, na m kwesịrị ibi na ya n'ụzọ ụfọdụ.

Andrei: N'oge na-adịbeghị anya, onye ọ bụla malitere ikwu banyere ịmara onwe onye maka introverts, na nkà dị nro n'ozuzu ya. Kedu ihe ị nwere ike ikwu maka nke a?

Nnụnụ ugwu: Ee, nke ahụ bụ nghọta na ihe mmụta m mụtara n’alụmdi na nwunye m gbara. Ihe m mụtara na ịgba alụkwaghịm ahụ bụ ịghọta onwe m. Otú a ka m si malite ịghọta ndị ọzọ. Ghọta ka mmekọrịta a si arụ ọrụ. Nke a mere ka a chọpụta n'otu n'otu. Enwere mmata nke onye m bụ na ihe m na-anọchite anya ya. Kedu ihe m na-eme: ma ọ bụ ọrụ ahụ na-eche m echiche, ma ọ bụ na m na-ezere esemokwu, ma ọ bụ ihe ọzọ - na ọkwa a nke ịmara onwe onye na-enye aka n'ezie ijide onwe m. Mgbe nke a gasịrị, ihe niile na-aga n'ụzọ dị mfe karị. Otu ihe m chọpụtara ọ bụghị naanị n'ime onwe m, kamakwa na ndị mmemme ndị ọzọ bụ enweghị ike ikwupụta echiche mgbe ị nọ n'ọnọdụ nke nrụgide mmetụta uche. Dị ka ọmụmaatụ, ị na-anọdụ ala n'ebe ahụ koodu, na ọnọdụ nke eruba, na mgbe ahụ, ha na-abịa na-agba ọsọ gị na-amalite na-eti mkpu na hysterics na ihe mebiri emebi na ugbu a a ga-eme ihe siri ike megide gị. Ma ị nweghị ike ikwu otu okwu n'ihi na ị nọ n'ọnọdụ nrụgide mmetụta uche. Ihe ọmụma enwetara na-enye gị ohere ịkwadebe maka oge a, lanarị ya ma gaa n'ihu na atụmatụ ịlaghachi azụ, mgbe nke ahụ gasịrị ị nwere ike ime ihe. Ya mere ee, mgbe ị malitere ịghọta ka ọ na-arụ ọrụ, ọ bụ nnukwu ihe na-agbanwe ndụ. 
Mụ onwe m enweghị ike ịchọta okwu ziri ezi, mana echetara m usoro omume. Isi ihe bụ na mmeghachi omume a bụ nke anụ ahụ ka ọ na-ekwu, na ịchọrọ ohere. Oghere dị otú ahụ, n'echiche Zen. Nke a bụ kpọmkwem ihe a chọrọ ka a kọwaa ya, wee pụọ ozugbo - pụọ naanị n'anụ ahụ. Mgbe m gbachiri nkịtị n'ọnụ, enwere m ike ịhazi ọnọdụ ahụ n'ụzọ mmetụta uche. Ka adrenaline na-erute ụbụrụ gị, na-atụgharị gị n'ime ọgụ ma ọ bụ ọnọdụ ụgbọ elu, ị nweghịzi ike ikwu ihe ọ bụla, mba - ugbu a ị bụ onye nzuzu, onye injinia na-eti ihe, na-enweghị ike nzaghachi dị mma ma ọ bụ ọbụna kwụsị ọgụ ahụ, onye na-awakpo ahụ nweere onwe ya. ịwakpo ugboro ugboro. Ị ga-ebu ụzọ ghọọ onwe gị ọzọ, nwetaghachi njikwa, pụọ na ọnọdụ "ọgụ ma ọ bụ ụgbọ elu".

Na nke a anyị chọrọ oghere ọnụ. Naanị oghere efu. Ọ bụrụ na ị na-ekwu ihe ọ bụla, mgbe ahụ ị nwere ike ikwu kpọmkwem nke ahụ, wee gaa na n'ezie chọta "ohere" maka onwe gị: gaa maka ije na ogige, igbachi onwe gị na ịsa ahụ - ọ dịghị mkpa. Isi ihe bụ ịkwụsị nwa oge na ọnọdụ ahụ. Ozugbo ị gbanyụrụ ma ọ dịkarịa ala sekọnd ole na ole, njikwa na-alaghachi, ị na-amalite iche echiche nke ọma. "Ọ dị mma, abụghị m ụdị onye nzuzu, anaghị m eme ihe nzuzu, abụ m onye bara uru." Ozugbo ị nwere ike ime ka onwe gị kwenye, ọ bụ oge ịga n'ihu na ọkwa ọzọ: ịghọta ihe merenụ. A wakporo gị, mwakpo ahụ sitere n'ebe ị na-atụghị anya ya, ọ bụ ihe na-adịghị akwụwa aka ọtọ, nke jọgburu onwe ya. Nke a dị njọ. Nzọụkwụ ọzọ bụ ịghọta ihe kpatara onye mwakpo ahụ ji chọọ nke a. N'ezie, n'ihi gịnị? Ma eleghị anya, n'ihi na ya onwe ya na-ewe iwe? Gịnị mere o ji agba ara? Dị ka ihe atụ, n'ihi na ọ kụwara onwe ya ma ghara ịnakwere ibu ọrụ? Nke a bụ ụzọ iji nlezianya na-edozi ọnọdụ ahụ dum. Mana nke a chọrọ ohere maka ịmegharị, oghere ọnụ. Nzọụkwụ mbụ bụ ịkwụsị nkwurịta okwu. Zere iji okwu kparịta ụka. Kagbuo ya, pụọ ngwa ngwa o kwere mee. Ọ bụrụ na ọ bụ mkparịta ụka telifon, kwụpụ naanị - nke a bụ nkà m mụtara site n'iso nwunye mbụ m na-ekwurịta okwu. Ọ bụrụ na mkparịta ụka ahụ anaghị aga ebe ọ bụla dị mma, kwuo naanị "ọdịnarị" wee kwụpụ. Site n'akụkụ nke ọzọ nke ekwentị: "blah blah blah", ị zara: "Ee, daalụ!" ma kwụghachi. Naanị kwụsị mkparịta ụka. Nkeji ise ka e mesịrị, mgbe ikike iche echiche ziri ezi laghachikwute gị, ị kwụsịrị ntakịrị, ọ ga-ekwe omume iche echiche banyere ihe niile, ihe mere na ihe ga-eme n'ọdịnihu. Ma malite imepụta nzaghachi nke ọma, kama imeghachi omume n'ụzọ mmetụta uche. Maka mụ onwe m, ọganihu e nwere na ịmara onwe onye bụ kpọmkwem eziokwu ahụ bụ na ọ bụrụ na enwere nchekasị, enweghị m ike ikwu okwu. Ịpụ na steeti a, iche echiche na ịhazi otú ị ga-esi meghachi omume na kwụọ ụgwọ maka nsogbu - ndị a bụ usoro ziri ezi na ikpe ahụ mgbe ị na-enweghị ike ikwu okwu. Ụzọ kachasị mfe bụ ịgbanahụ ọnọdụ nke nrụgide mmetụta uche na-egosipụta onwe ya ma kwụsị nanị itinye aka na nrụgide a. Mgbe nke ahụ gasịrị, ị ga-enwe ike iche echiche, mgbe ị nwere ike iche echiche, ị ga-enwe ike ikwu okwu, na ihe ndị ọzọ.

Site n'ụzọ, n'ụlọ ikpe, onye ọka iwu na-emegide na-anwa ime gị nke a - ugbu a, o doro anya ihe kpatara ya. N'ihi na o nwere ikike igbochi gị n'ọnọdụ dị otú ahụ nke na ị pụghị ịkpọ aha gị dịka ọmụmaatụ. N'ezie, ị gaghị enwe ike ikwu okwu. Ọ bụrụ na nke a emee gị, ma ọ bụrụ na ịmara na ị ga-ahụ onwe gị n'ebe a na-alụ ọgụ ọnụ, n'ebe dị ka ụlọ ikpe, mgbe ahụ ị nwere ike iso onye ọka iwu gị bịa. Onye ọka iwu ga-ebili maka gị wee kwụsị ọgụ ọnụ, ma mee ya n'ụzọ iwu zuru oke, oghere Zen furu efu ga-alaghachikwute gị. Dịka ọmụmaatụ, aghaghị m ịkpọ ezinụlọ m ugboro abụọ, ọkàikpe ahụ nwere ezigbo enyi maka nke a, mana onye ọka iwu na-emegide m tiri mkpu ma tie m mkpu, enweghị m ike ịnweta okwu na njedebe. N'okwu ndị a, iji onye ogbugbo na-arụ ọrụ kacha mma maka m. Onye ogbugbo na-akwụsị nrụgide a niile nke na-awụkwasị gị na iyi na-aga n'ihu, ị ga-ahụ oghere Zen dị mkpa, ya na ikike ikwu okwu na-alaghachi. Nke a bụ ngalaba ihe ọmụma zuru oke nke enwere ọtụtụ ihe ị ga-amụ, ọtụtụ ihe ị ga-achọpụta n'ime onwe gị, ihe a niile na-atụgharịkwa na mkpebi atụmatụ dị elu dị iche iche maka ndị dị iche iche. Ụfọdụ ndị anaghị enwe nsogbu ndị a kọwara n'elu; na-emekarị, ndị na-azụ ahịa ọkachamara enweghị ha. Ndị a niile na-eji okwu eme ndụ ha - ndị ọbụ abụ a ma ama, ndị na-ede uri, ndị ndú okpukpe na ndị ndọrọ ndọrọ ọchịchị, ha na-enwekarị ihe ha ga-ekwu. Ha enweghị nsogbu ndị dị otú ahụ, ma enwere m.

Andrei: Ọ bụ... na-atụghị anya ya. Ọ dị mma, anyị ekwuola ọtụtụ ihe ma oge eruola ịkwụsị ajụjụ ọnụ a. Anyị ga-ezute n'ezie na ogbako ma ga-enwe ike ịga n'ihu na mkparịta ụka a. Hụrụ gị na Hydra!

Ị nwere ike ịga n'ihu na mkparịta ụka gị na Cliff na ogbako Hydra 2019, nke a ga-eme na July 11-12, 2019 na St. Petersburg. Ọ ga-eji akụkọ bịa "ahụmahụ ebe nchekwa azụmahịa Azul Hardware". Enwere ike ịzụta tiketi na weebụsaịtị.

isi: www.habr.com

Tinye a comment