Google guhertoyek nû ya pergala veqetandina bîra TCMalloc weşand

gûgil pêşkêş kirin guhertoya nû ya pergala belavkirina bîranînê TCMalloc, ku di gelek projeyên navxweyî yên Google de tê bikaranîn. Koda TCMalloc bi C ++ û tê nivîsandin belav kirin ji hêla di bin lîsansa Apache de. Ji bo xebatê, hûn hewceyê berhevkarek ku C++17 ji bo zimanê C++, û C11 ji bo zimanê C (gcc 9.2+ an clang 9.0+) piştgirî dike. Ji pergalên xebitandinê piştgirî kirin bi tenê Linux (x86, PPC).

Hêjayî gotinê ye ku ji sala 2005-an vir ve celebek din a tcmalloc heye, ku pêşkêş kirin di pakêtê de hene gperftools (Amûrên Performansa Google). Ew du wekîdin projeyên bi kokên hevpar. TCMalloc-a nû bêtir hewldanek e ku çavkaniyek pêşkeftinên hundurîn ên Google-ê veke, lê hîna ew ne armanc e ku ABI-ya domdar û piştgirî ji bo cûrbecûr pergalên xebitandinê peyda bike. Tcmalloc-a kevn ji gperftools dê berdewam bike ku were domandin, lê taybetmendiyên nû, wekî girêdana cache bi CPU-yê re, nayê plan kirin ku jê re bêne veguheztin.

TCMalloc pêkanîna fonksiyona C malloc() û operatora "nû" ya C++, ku ji bo performansa bilind û karanîna di sepanên pir-mijarî de xweşbîn e, vedihewîne. TCMalloc di heman demê de kapasîteyên hundurîn û profîlkirinê peyda dike ku destûrê dide serîlêdanek ku agahdariya hûrgulî di derheqê karanîna bîranînê de li ser giravê bistîne. Kod li gorî taybetmendiyên nûjen ên zimanê C++, wek mînak, xweşbîniyan bikar tîne
jêbirin operator bi mezinbûnê nîşan dide ji C ++14 û veqetandina bîra bi astîkirin ji C++17.

TCMalloc pêk tê из трёх компонентов: фронтэнда с кэшем для быстрого выделения и освобождения памяти, прослойки для наполнения кэша фронтэнда и бэкенда, выполняющего такие операции, как получение памяти от операционной системы, управления большими кусками неиспользованной памяти и возвращение лишней памяти обратно в ОС. Кэш избавлен от блокировок и работает в привязке к ядрам CPU, но откатывается на модель кэширования в привязке к потокам в случае отсутствия необходимой функциональности в ядре ОС (привязка кэша к CPU работает только в свежих ядрах Linux). Бэкенд поддерживает работу как с обычными страницами памяти, так и со страницами увеличенного размера (hugepage).

 Google guhertoyek nû ya pergala veqetandina bîra TCMalloc weşand

Taybetmendiyên sereke yên TCMalloc:

  • Veqetandin û veqetandina bilez a bîranînê bi karanîna cachkirinê. Piraniya veqetandinên bîranînê ne hewceyî kilîtkirinê ne, ku ji bo serîlêdanên pir hevdemî, pir-mijarî scalability baş peyda dike;
  • Bikaranîna bîranîna maqûl, ku dihêle hûn deverên bîranîna azad ji nû ve ji bo tiştên bi mezinahiyên cihêreng bikar bînin an bîra vegerînin pergala xebitandinê;
  • Bi veqetandina rûpelên tiştên bi pîvana wekhev û bi karîgerî temsîlkirina tiştên piçûk re sermaya serê her tiştî kêm e. Rûpelên mantiqî yên mezinahiyên 4KiB, 8KiB, 32KiB û 256KiB têne piştgirî kirin. Mînakî, dema daxwazkirina blokên 512 baytên bîranînê, dê rûpelek tevahî 4KiB ji bo tiştên 512-byte were veqetandin, ku dikare 8 tiştên weha bihewîne;
  • Bi destnîşankirina mezinahiya cache û pîvanên ji bo ziraviya vegerandina bîranînê li OS-ê vesazkirina xweş gengaz e;
  • Ji bo analîzkirina karanîna bîranîna serîlêdanê agahdariya berfireh peyda dike.

Source: opennet.ru

Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster