Facebook yakaburitsa iyo Cinder sosi kodhi iyo inoshandiswa ne Instagram

Facebook yakazarurwa munguva pfupi yapfuura kuburikidza nepositi, kusunungura kodhi kodhi yeiyo Cinder chirongwa, zvinova forogo yebazi reCPython uye iko kukuru kuitisa kuitiswa kweiyo Python chirongwa chemutauro.

Cinder inoshandiswa muFacebook yekugadzira zvivakwa kusimbisa Instagram uye inosanganisira optimizations yekuvandudza mashandiro. Iyo kodhi yakaburitswa kuti ikurukure nezve mukana wekutama akagadzirira-akagadzirwa optimizations kune akakurisa eCPython uye kubatsira mamwe eCPython kuita basa rekuvandudza mashandiro.

Facebook inotaura kuti haizotsigire Cinder seyakavhurika sosi yeprojekti uye kodhi yacho inoiswa muchimiro chayakashandiswa muzvivakwa zvekambani, pasina mamwe magwaro.

Cinder haisi kuzvisimudzira pachayo seimwe nzira yeCPython chero - chinangwa chikuru chekuvandudza ndechekusimudzira CPython pachayo.

Cinder's kodhi inoonekwa seyakavimbika zvine musoro uye kuyedzwa munzvimbo dzekugadzira, asi kana matambudziko akaonekwa, ivo vanofanirwa kugadziriswa vega, sezvo Facebook isinga vimbise kuti ichapindura kune ekunze mhosho mameseji uye kudhonza zvikumbiro.

Panguva imwecheteyo, Facebook haibatanidzi kubatana kunovaka pamwe nenharaunda uye yakagadzirira kukurukura mazano ekuita kuti Cinder ikurumidze kana kukurumidza kuchinjisa shanduko dzakagadzirirwa kuchimiro chikuru cheCCython.

Iwo makuru ekugadzirisa akaitwa muCinder ndeaya:

  • Bytecode online caching: Musimboti wenzira iyi ndeyekuona mamiriro epocode ekuuraya mamiriro anogona kugadziridzwa musimba uye kutsiva iyo opcode nekukurumidza sarudzo dzakasarudzika.
  • Kugara uchiongorora: Nezve asynchronous basa kufona kunoitwa ipapo ipapo, mhedzisiro yeaya mabasa akawedzeredzwa zvakananga pasina kugadzira coroutine uye pasina kukumbira chiitiko chiuno. Mune kodhi inoshandiswa neFacebook, iyo yainoshandisa zvakanyanya, optimization inotungamira mukumhanyisa kweinenge 5%.
  • Kusarudza kuunganidzwa kweJIT padanho renzira dzemunhu uye mabasa: inogoneswa ne "-X jit" sarudzo kana nharaunda inoshanduka PYTHONJIT = 1 uye inobvumidza miedzo mizhinji yekuita kuti ikurumidze ne 1,5 kusvika ku4 nguva.
    Iyo rondedzero yemabasa iyo iyo JIT inofanirwa kuve inogoneswa inogona kutemerwa zvichienderana nemhedzisiro yeiyo nhoroondo. Mune ramangwana, rutsigiro rwekusimba kweJIT kuunganidzwa kunoenderana nekuongororwa kwemukati kwekuita kwekufona frequency kunotarisirwa, asi tichifunga izvo zvakasarudzika zvekutanga maitiro pa Instagram, JIT kuunganidzwa kwakakodzerawo Facebook mune yekutanga nhanho.
    Iyo JIT inotanga kushandura bytecode yePython kuita chimiro chepamusoro chepakati (HIR), iri padhuze padhuze nePecode yekodhi yePython, asi yakagadzirirwa kushandisa rekodhi-yakavakirwa muchina wemuchina pane rekodhi-yakavakirwa muchina. Stack, uye zvakare inoshandisa yekuwedzera mhando yeruzivo uye ruzivo rwakanangana nekuita. Iyo HIR inozoshandurwa kuita iyo Static Imwe Kugovera Kumwe (SSA) fomu uye inoenda pamatanho ekugadzirisa zvichienderana nereferensi kuverenga uye yekushandisa dhata yekushandisa. Nekuda kweizvozvo, inomiririra-yepakati-yepakati inomiririra (LIR) inogadzirwa, iri padyo nemutauro wegungano.
  • Yakasimba nzira yemamojuru:Iko mashandiro ane zvinhu zvitatu: Iyo StrictModule mhando. Iyo static analyzer inokwanisa kuona kuti kuitiswa kwemo module hakukanganise kodhi iri kunze kwemo module.
  • Yakasimba Python: yekuyedza bytecode compiler iyo inoshandisa mhando zvirevo kuburitsa bytecode iyo yakanangana nemhando yega yega uye inomhanya nekukurumidza kuburikidza nekuunganidzwa kweJIT. Mune kumwe kuyedzwa, kusanganiswa kweStatic Python uye JIT kunoratidza kusvika kusvika ku7x kugadzirisa kuita pane yakajairika CPython. Mune akawanda mamiriro, mhedzisiro inoongororwa sekunge maMyPyC uye maCython compilers akashandiswa.

Finalmente kana iwe uchifarira kugona kuwana iyo Cinder kodhi kana kudzidza zvakawanda nezvazvo, unogona kubvunza iyo ruzivo mune inotevera chinongedzo.


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako