Facebook tau tso Cinder qhov chaws (code) uas siv los ntawm Instagram

Facebook unveiled nyuam qhuav dhau ib qho, tso cov txheej txheem ntawm phiaj xwm Cinder, uas yog rab rawg ntawm CPython ceg thiab qhov tseem ceeb rau kev siv ntawm Python programming lus.

Cinder siv hauv Facebook cov khoom lag luam tsim kom muaj zog rau Instagram thiab suav nrog qhov ua kom zoo txhawm rau txhim kho kev ua haujlwm. Cov cai tau luam tawm los tham txog qhov ua tau los ntawm kev npaj mus rau qhov tsim nyog tau ua kom tau raws li qhov tseem ceeb ntawm CPython thiab pab lwm qhov CPython kev txhim kho kev ua haujlwm.

Facebook hais tias nws yuav tsis txhawb nqa Cinder raws li qhov qhib qhib qhov project tshiab thiab cov cai tau nthuav tawm hauv daim ntawv uas nws siv hauv cov txheej txheem hauv tuam txhab, tsis tas yuav muaj ntaub ntawv ntxiv.

Cinder kuj tseem tsis tau txhawb nws tus kheej yog lwm txoj kev qhia rau CPython - lub hom phiaj kev txhim kho lub ntsiab yog txhim kho CPython nws tus kheej.

Cinder tus lej yog xam pom zoo txaus ntseeg thiab kuaj hauv cov chaw tsim khoom ntau lawm, tab sis yog tias teeb meem tshwm sim, lawv yuav xav tau kev daws teeb meem ntawm lawv tus kheej, vim Facebook tsis tau lees tias nws yuav teb cov lus yuam kev sab nraud thiab rub thov.

Nyob rau tib lub sijhawm, Facebook tsis suav nrog kev tsim kho kev koom tes nrog zej zog thiab npaj txhij los sib tham txog cov tswv yim yuav ua li cas thiaj ua Cinder txawm sai dua lossis yuav ua li cas nrawm hloov chaw ntawm kev hloov pauv mus rau lub ntsiab CPython lub luag haujlwm.

Lub ntsiab zoo tau ua tiav hauv Cinder yog:

  • Bytecode caching online: Lub ntsiab lus ntawm cov txheej txheem yog txheeb xyuas cov xwm txheej opcode tiav siv uas tuaj yeem hloov kho kom zoo thiab hloov qhov opcode ntawd nrog cov kev xaiv tshwj xeeb dua.
  • Kev ntsuam xyuas niaj hnub: Rau cov asynchronous muaj nuj nqi hu uas tau ua tiav tam sim ntawd, qhov tshwm sim ntawm cov haujlwm ntawd ncaj qha hloov chaw yam tsis muaj tsim cov coroutine thiab tsis muaj cuam tshuam cov xwm txheej voj. Hauv tus lej siv los ntawm Facebook, uas nws siv hnyav, kev ua kom tau zoo ua rau muaj kev nrawm txog kwv yees li 5%.
  • Xaiv JIT kev tso ua ke nyob rau theem ntawm tus neeg txoj kev thiab kev ua haujlwm: nws yog qhib los ntawm "-X jit" kev xaiv lossis ib puag ncig tsis paub meej PYTHONJIT = 1 thiab tso cai rau ntau yam kev ntsuas kom ua nrawm nrawm los ntawm 1,5 txog 4 zaug.
    Daim ntawv teev cov haujlwm uas JIT yuav tsum tau tuaj yeem txiav txim siab raws li cov txiaj ntsig ntawm qhov profile. Nyob rau yav tom ntej, kev txhawb zog rau JIT muab tso ua ke raws li kev soj ntsuam sab hauv ntawm kev ua haujlwm hu rau zaus, tab sis xav tias qhov tshwj xeeb ntawm cov txheej txheem pib ntawm Instagram, JIT muab tso ua ke kuj tseem haum rau Facebook hauv thawj theem.
    Lub JIT ua ntej hloov Python's bytecode mus rau theem sawv cev nruab nrab (HIR), uas tsim nyog ze rau Python's bytecode, tab sis yog tsim los siv cov ntaub ntawv-based virtual tshuab ntau dua li cov ntaub ntawv-los ntawm lub tshuab virtual, thiab tseem siv lwm yam ntaub ntawv ntxiv thiab cov ntsiab lus muaj feem rau kev ua tiav. Lub HIR tom qab ntawd hloov mus rau Static Single Allocation (SSA) daim ntawv thiab yauv ua theem ntawm kev ua kom tau zoo raws li kev suav suav thiab cim xeeb siv cov ntaub ntawv. Raws li qhov tshwm sim, qhov nruab nrab ntawm cov sawv cev hauv nruab nrab (LIR) raug tsim tawm, uas ze rau cov lus sib dhos.
  • Hom nruj rau cov qauv:Kev ua haujlwm muaj peb ntu: StrictModule yam. Tus ntsuas hluav taws xob zoo li qub muaj peev xwm txiav txim siab tias kev ua tiav ntawm ib qho module tsis cuam tshuam rau qhov chaws sab nraud ntawm tus qauv ntawd.
  • Nab hab sej: yog qhov kev sim bytecode compiler uas siv hom cim tshaj tawm los tsim cov bytecode uas tshwj xeeb rau txhua hom thiab khiav nrawm dua los ntawm JIT muab tso ua ke. Hauv qee qhov kev sim, kev sib xyaw ntawm Static Python thiab JIT ua qauv qhia tau nce txog 7 x kev ua tau zoo dua li CPython tsis tu ncua. Hauv ntau qhov xwm txheej, cov txiaj ntsig tau raug soj ntsuam zoo li qhov MyPyC thiab Cython compilers tau siv.

Thaum kawg yog tias koj txaus siab nyob hauv kev tuaj yeem tau txais Cinder code lossis paub ntxiv txog nws, koj tuaj yeem sab laj nrog cov ntsiab lus nyob rau hauv qhov txuas hauv qab no.


Cov ntsiab lus ntawm tsab xov xwm ua raws li peb cov ntsiab cai ntawm kev tswj hwm kev ncaj nceesCov. Tshaj tawm ib qho yuam kev nyem no.

Yog thawj tus tuaj tawm tswv yim

Tso koj saib

Koj email chaw nyob yuav tsis tsum luam tawm. Yuav tsum tau teb cov cim nrog *

*

*

  1. Lub luag haujlwm rau cov ntaub ntawv: Miguel Ángel Gatón
  2. Lub hom phiaj ntawm cov ntaub ntawv: Tswj SPAM, kev tswj xyuas tawm tswv yim.
  3. Sau raws cai: Koj kev tso cai
  4. Kev sib txuas lus ntawm cov ntaub ntawv: Cov ntaub ntawv yuav tsis raug xa mus rau lwm tus neeg thib peb tsuas yog los ntawm kev txiav txim siab raug cai.
  5. Cov ntaub ntawv khaws cia: Cov Ntaub Ntawv khaws tseg los ntawm Occentus Networks (EU)
  6. Txoj Cai: Txhua lub sijhawm koj tuaj yeem txwv, rov qab thiab tshem tawm koj cov ntaub ntawv.