70% ea mathata a ts'ireletso ho Chromium a bakoa ke liphoso tsa mohopolo

Baqapi ba projeke ea Chromium hlahlobisitsoe 912 e kotsing e kholo le bofokoli bo boholo bo hloailoeng liphatlalatsong tse tsitsitseng tsa Chrome ho tloha 2015, mme ba etsa qeto ea hore 70% ea bona e bakiloe ke ho se sireletsehe mohopolong (liphoso ha u sebetsa ka litsupa ka khoutu ea C/C++). Halofo ea mathata ana (36.1%) e bakoa ke ho fihlella buffer ka mor'a ho lokolla mohopolo o amanang le eona (sebelisa-kamora-mahala).

70% ea mathata a ts'ireletso ho Chromium a bakoa ke liphoso tsa mohopolo

Ha ho etsoa Chromium e ne e le qalong beha fatshehore ho ka etsahala hore liphoso li hlahe ka har'a khoutu, kahoo khatiso e kholo e ile ea behoa ho sebelisoa ha sandbox ho itšehla thajana ho fokotsa liphello tsa bofokoli. Hajoale, menyetla ea ho sebelisa theknoloji ena e fihlile pheletsong ea bokhoni ba bona mme karohano e tsoelang pele ea lits'ebetso ha e khonehe ho latela pono ea tšebeliso ea lisebelisoa.

Ho boloka ts'ireletso ea codebase, Google e boetse e qobella "molao oa bobeli", ho latela hore na khoutu efe kapa efe e ekelitsoeng e sa tlameha ho kopana le maemo a fetang a mabeli ho a mararo: ho sebetsa ka data e kentsoeng e sa netefatsoang, ho sebelisa puo e sa sireletsehang ea lenaneo (C/C ++) le ho sebetsa ka litokelo tse phahameng. Molao ona o fana ka maikutlo a hore khoutu ea ho sebetsana le data ea ka ntle e tlameha ho fokotsoa hore e be litokelo tse fokolang (e arohaneng) kapa e ngoloe ka puo e sireletsehileng ea lenaneo.

Ho tsoela pele ho matlafatsa ts'ireletso ea motheo oa khoutu, morero o qalile ho thibela liphoso tsa memori hore li se ke tsa hlaha motheong oa khoutu. Ho na le mekhoa e meraro ea mantlha: ho theha lilaebrari tsa C ++ tse nang le mesebetsi bakeng sa ts'ebetso e bolokehileng ea mohopolo le ho holisa sebaka sa moqokelli oa lithōle, ho sebelisa mekhoa ea ts'ireletso ea hardware. MTE (Memory Tagging Extension) le likarolo tsa ho ngola ka lipuo tse netefatsang mosebetsi o bolokehileng ka mohopolo (Java, Kotlin, JavaScript, Rust, Swift).

Ho lebelletsoe hore mosebetsi o tla shebana le likarolo tse peli:

  • Phetoho e kholo ho ts'ebetso ea nts'etsopele ea C ++, e sa kenyelletseng tšusumetso e mpe ho ts'ebetso (litlhahlobo tse ling tsa meeli le pokello ea lithōle). Sebakeng sa litsupa tse tala, ho khothaletsoa ho sebelisa mofuta MiraclePtr, e leng se u lumellang ho fokotsa liphoso tse sebelisoang ka mor'a ho sebelisa hampe ho senyeha ho sa hlahiseng tšokelo ea tšireletso, ntle le tšusumetso e mpe e bonahalang ts'ebetsong, ts'ebeliso ea mohopolo le botsitso.
  • Ts'ebeliso ea lipuo tse etselitsoeng ho etsa liteko tsa polokeho ea memori ka nako ea ho bokella (e tla felisa tšusumetso e mpe ts'ebetsong e amanang le licheke tse joalo nakong ea ts'ebetso ea khoutu, empa e tla lebisa litšenyehelong tse eketsehileng tsa ho hlophisa tšebelisano ea khoutu ka puo e ncha ka khoutu ho C++).

Ho sebelisa lilaebrari tse bolokehileng mohopolong ke mokhoa o bonolo, empa hape o sa sebetseng hantle. Khoutu ea ho ngola bocha ho Rust e nkuoe e le eona e sebetsang ka ho fetesisa, empa hape e theko e boima haholo.

70% ea mathata a ts'ireletso ho Chromium a bakoa ke liphoso tsa mohopolo

Source: opennet.ru

Eketsa ka tlhaloso