Facebook ayaa sii deysay koodhka isha 'Cinder' ee ay isticmaasho barta 'Instagram'

Facebook ayaa shaaca laga qaaday dhawaan iyada oo loo marayo boostada, sii deynta koodhka isha ee mashruuca dhululubo, taas oo ah fargeeto ah laanta CPython iyo tixraaca ugu weyn ee tixraaca luqadda barnaamijka Python.

Xarun loo adeegsaday kaabayaasha wax soo saarka ee Facebook si loogu xoojiyo Instagram waxaana ka mid ah waxyaabo la hagaajinayo si loo hagaajiyo waxqabadka. Koodhka ayaa loo daabacay si looga wada hadlo suurtagalnimada u haajirida u diyaargarowga diyaarinta ee guud ee CPython iyo in laga caawiyo mashaariicda kale ee horumarinta waxqabadka CPython.

Facebook wuxuu xusayaa inuusan u taageeri doonin Cinder mashruuc mashruuc il furan oo gooni ah iyo nambarka waxaa lagu soo bandhigaa qaabka loo isticmaalo kaabayaasha shirkadda, iyada oo aan la helin dukumiinti dheeraad ah.

Cinder sidoo kale iskuma dhiirrigelin inay beddel u noqoto CPython - ujeeddada ugu weyn ee horumarinta waa in la wanaajiyo CPython lafteeda.

Koodhka Cinder waxaa loo arkaa mid macquul ah oo lagu kalsoonaan karo waxaana lagu tijaabiyay jawiga wax soo saarka, laakiin haddii dhibaatooyinka la ogaado, waxay u baahan doonaan in iyaga keligood la xalliyo, maadaama Facebook uusan damaanad qaadin inuu ka jawaabi doono farriimaha qaladka dibedda ah iyo jiido codsiyo.

Isla mar ahaantaana, Facebook kama reebayo iskaashiga wax-ku-oolka ah ee bulshada wuxuuna diyaar u yahay inuu kala hadlo fikradaha ku saabsan sida loo sameeyo Cinder xitaa si dhakhso leh ama sida loo dedejiyo wareejinta isbeddellada diyaarsan ee qaab-dhismeedka ugu weyn ee CPython.

Waxyaabaha ugu habboon ee laga hirgeliyey Cinder waa:

  • Gawaarida internetka ee Bytecode: Nuxurka qaabku waa in lagu garto xaaladaha caadiga ah ee fulinta opcode ee si firfircoon loogu hagaajin karo laguna beddelo opcode-ka xulashooyin takhasus dhakhso leh leh.
  • Qiimaynta joogtada ah: Wixii wicitaano shaqeed asynchronous ah oo isla markaaba la farsameeyo, natiijada shaqooyinkaas si toos ah ayaa loo beddelaa iyada oo aan la abuurin coroutine iyo iyada oo aan la yeerin dhacdo loop. Koodhka ay adeegsato Facebook, oo ay si aad ah u isticmaasho, isuduwaha ayaa horseedaya dardar gelin ku saabsan 5%.
  • Isku-darka xulashada ee JIT ee heerka hababka shaqooyinka iyo shaqooyinka: waxaa karti u leh ikhtiyaarka "-X jit" ama isbeddelka deegaanka ee PYTHONJIT = 1 wuxuuna kuu oggolaanayaa inaad xawaareyso tijaabooyin badan oo wax qabad ah 1,5 illaa 4 jeer.
    Liistada shaqooyinka ay tahay in loo sahlo JIT ayaa lagu go'aamin karaa iyadoo lagu saleynayo natiijooyinka astaanta. Mustaqbalka, taageerada isku-duwidda JIT-da firfircoon ee ku saleysan falanqaynta gudaha ee soo noqnoqda wicitaanka shaqada ayaa la filayaa, laakiin iyadoo la tixgelinayo waxyaabaha gaarka u ah howlaha bilowga ah ee barta 'Instagram', isku duba ridka 'JIT' ayaa sidoo kale ku habboon Facebook marxaladda hore.
    JIT wuxuu marka hore u rogayaa bytecode Python-ka heer sare oo matalaad dhexe ah (HIR), oo macquul ahaan ugu dhow Pyte's bytecode, laakiin waxaa loogu talagalay in lagu isticmaalo mashiin rikoodh ku saleysan diiwaanka halkii uu ka ahaan lahaa mishiin rikoodh ku saleysan rikoodh. wuxuu adeegsadaa macluumaadka nooca iyo faahfaahin dheeri ah oo laxiriira waxqabadka. HIR ayaa markaa loo beddelaa foomka Qoondaynta Halbeegga ah (SSA) waxaana lagu maraa heerarka ugu habboon ee ku saleysan tirinta tixraaca iyo xogta isticmaalka xusuusta. Natiijo ahaan, matalaad heer hoose ah oo dhexdhexaad ah (LIR) ayaa la soo saaray, taas oo ku dhow luqadda kulanka.
  • Habka adag ee loogu talagalay modules:Waxqabadka wuxuu leeyahay saddex qaybood: Nooca StrictModule. Falanqeeye ma guurto ah oo awood u leh go'aaminta in fulinta qayb ka mid ah uusan saameyn ku yeelanaynin koodhka ka baxsan modulekaas.
  • Python joogto ah: waa tijaabi bytecode isku-uruuriyaha oo adeegsanaya fasiraadaha nooca si loo abuuro bytecode u gaar ah nooc kasta oo si dhakhso leh ugu socda isu-geynta JIT. Imtixaanada qaarkood, isku darka Static Python iyo JIT waxay muujinayaan ilaa 7x waxqabad horumarineed oo ku saabsan CPython-ka caadiga ah. Xaalado badan, natiijooyinka waxaa loo qiimeeyaa sidii kuwa isku dhafan MyPyC iyo Cython loo isticmaalay.

Finalmente haddii aad xiiseyneyso inaad heli karto lambarrada 'Cinder' ama wax badan ka baro, waxaad la tashan kartaa faahfaahinta xiriirka soo socda.


Nuxurka maqaalka wuxuu u hogaansamayaa mabaadi'deena anshaxa tifaftirka. Si aad u soo sheegto khalad guji Halkan.

Noqo kuwa ugu horreeya ee faallo bixiya

Ka tag faalladaada

cinwaanka email aan la daabacin doonaa.

*

*

  1. Masuul ka ah xogta: Miguel Ángel Gatón
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.

bool (run)