גוגל האט פארעפנטלעכט אַ נייַע ווערסיע פון ​​די TCMalloc זכּרון אַלאַקיישאַן סיסטעם

גוגל דערלאנגט נייַ ווערסיע פון ​​די זכּרון פאַרשפּרייטונג סיסטעם TCmalloc, וואָס איז געניצט אין פילע ינערלעך Google פּראַדזשעקס. די TCMalloc קאָד איז געשריבן אין C ++ און פונאנדערגעטיילט דורך אונטער די אַפּאַטשי דערלויבעניש. צו אַרבעטן, איר דאַרפֿן אַ קאַמפּיילער וואָס שטיצט C ++17 פֿאַר די C ++ שפּראַך, און C11 פֿאַר די C שפּראַך (gcc 9.2+ אָדער קלאַנג 9.0+). פֿון אָפּערייטינג סיסטעמען שטיצט דורך בלויז Linux (x86, PPC).

עס איז נאָוטווערדי אַז זינט 2005 עס איז געווען אן אנדער וואַריאַנט פון tcmalloc, וואָס צושטעלן אַרייַנגערעכנט אין דעם פּעקל גפּערפטאָאָלס (גוגל פאָרשטעלונג מכשירים). אַז ס צוויי אַנדערש פראיעקטן וואָס האָבן פּראָסט רוץ. די נייַע TCMalloc איז מער אַן פּרווון צו עפֿענען מקור Google ס קראַנט ינערלעך דיוועלאַפּמאַנץ, אָבער עס איז נאָך נישט אַימעד צו צושטעלן אַ סטאַביל ABI און שטיצן פֿאַר אַ ברייט קייט פון אָפּערייטינג סיסטעמען. דער אַלט tcmalloc פֿון gperftools וועט פאָרזעצן צו זיין מיינטיינד, אָבער נייַ פֿעיִקייטן, אַזאַ ווי קאַש ביינדינג צו די קפּו, זענען נישט פּלאַננעד צו זיין טראַנספערד צו עס.

TCMalloc ינקלודז אַ ימפּלאַמענטיישאַן פון די C פונקציע malloc () און די C ++ "נייַע" אָפּעראַטאָר, אָפּטימיזעד פֿאַר הויך פאָרשטעלונג און נוצן אין מולטי-טרעדיד אַפּלאַקיישאַנז. TCMalloc אויך גיט ינטראַספּעקשאַן און פּראָפילינג קייפּאַבילאַטיז וואָס לאָזן אַ אַפּלאַקיישאַן צו באַקומען דיטיילד אינפֿאָרמאַציע וועגן זכּרון באַניץ אויף דער קופּע. דער קאָד ניצט אָפּטימיזאַטיאָנס באזירט אויף מאָדערן פֿעיִקייטן פון די C ++ שפּראַך, אַזאַ ווי
ויסמעקן אָפּעראַטאָר מיט ינדאַקייטינג די גרייס פֿון C ++14 און זכּרון אַלאַקיישאַן מיט לעוועלינג פֿון C++17.

TCmalloc באשטייט פון из трёх компонентов: фронтэнда с кэшем для быстрого выделения и освобождения памяти, прослойки для наполнения кэша фронтэнда и бэкенда, выполняющего такие операции, как получение памяти от операционной системы, управления большими кусками неиспользованной памяти и возвращение лишней памяти обратно в ОС. Кэш избавлен от блокировок и работает в привязке к ядрам CPU, но откатывается на модель кэширования в привязке к потокам в случае отсутствия необходимой функциональности в ядре ОС (привязка кэша к CPU работает только в свежих ядрах Linux). Бэкенд поддерживает работу как с обычными страницами памяти, так и со страницами увеличенного размера (hugepage).

 גוגל האט פארעפנטלעכט אַ נייַע ווערסיע פון ​​די TCMalloc זכּרון אַלאַקיישאַן סיסטעם

הויפּט פֿעיִקייטן פון TCmalloc:

  • שנעל אַלאַקיישאַן און דיאַלאַקיישאַן פון זכּרון מיט קאַטשינג. רובֿ זכּרון אַלאַקיישאַנז טאָן ניט דאַרפן לאַקינג, וואָס גיט גוט סקאַלאַביליטי פֿאַר הויך קאַנקעראַנסי, מולטי-טרעדיד אַפּלאַקיישאַנז;
  • פלעקסאַבאַל זיקאָרן באַניץ, אַלאַוינג איר צו רייוז פריי זיקאָרן געביטן פֿאַר אַבדזשעקץ פון פאַרשידענע סיזעס אָדער צוריקקומען זיקאָרן צו די אָפּערייטינג סיסטעם;
  • נידעריק פּער-אָבדזשעקט אָוווערכעד דורך אַלאַקייטינג גלייַך סייזד כייפעץ בלעטער און יפישאַנטלי רעפּריזענטינג קליין אַבדזשעקץ. לאַדזשיקאַל בלעטער פון סיזעס 4KiB, 8KiB, 32KiB און 256KiB זענען געשטיצט. פֿאַר בייַשפּיל, ווען ריקוועסטינג בלאַקס פון 512 ביטעס פון זכּרון, אַ גאַנץ 4KiB בלאַט וועט זיין אַלאַקייטיד פֿאַר 512-ביטע אַבדזשעקץ, וואָס קענען אַקאַמאַדייט 8 אַזאַ אַבדזשעקץ;
  • פיין-טונינג איז מעגלעך דורך דיטערמאַנינג די קאַש גרייס און פּאַראַמעטערס פֿאַר די ינטענסיטי פון זכּרון צוריקקומען צו די אַס;
  • פּראָווידעס דיטיילד אינפֿאָרמאַציע צו אַנאַלייז אַפּלאַקיישאַן זכּרון באַניץ.

מקור: opennet.ru

קויפן פאַרלאָזלעך האָסטינג פֿאַר זייטלעך מיט DDoS שוץ, VPS VDS סערווערס 🔥 קויפט פאַרלעסלעכע וועבזייטל האָסטינג מיט DDoS שוץ, VPS VDS סערווערס | ProHoster