Google wis nerbitake versi anyar saka sistem alokasi memori TCMaloc

Google diwenehi versi anyar saka sistem alokasi memori TCMalloc, sing digunakake ing akeh proyek Google internal. Kode TCMalloc ditulis ing C ++ lan disebarake dening Dilisensi miturut Lisensi Apache. Iki mbutuhake compiler karo C ++ 17 support kanggo C ++ lan C11 support kanggo C (gcc 9.2+ utawa clang 9.0+). Sistem operasi didhukung dening mung Linux (x86, PPC).

Wigati dicathet yen wiwit taun 2005 ana varian tcmalloc liyane, yaiku diwenehake minangka bagéan saka paket gperftools (Google Performance Tools). Iki loro beda proyek karo werna umum. TCMalloc anyar luwih minangka upaya kanggo mbukak-sumber pangembangan internal Google saiki, nanging durung ngarahake nyedhiyakake ABI sing stabil utawa ndhukung macem-macem sistem operasi. Pangopènan tcmalloc lawas saka gperftools bakal terus, nanging fitur-fitur anyar, kayata afinitas cache basis CPU, ora direncanakake kanggo port kasebut.

TCMalloc kalebu implementasine saka fungsi C malloc () lan operator C ++ "anyar", optimized kanggo kinerja dhuwur lan digunakake ing aplikasi multithreaded. TCMalloc uga menehi kemampuan introspeksi lan profil, ngidini aplikasi entuk informasi rinci babagan panggunaan memori tumpukan. Kode kasebut nggunakake optimasi adhedhasar fitur basa C++ modern, kayata
mbusak operator c nuduhake ukuran saka C ++ 14 lan alokasi memori karo keselarasan saka C++ 17.

TCMalloc kasusun saka ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: фронтэнда с кэшСм для быстрого выдСлСния ΠΈ освобоТдСния памяти, прослойки для наполнСния кэша фронтэнда ΠΈ бэкСнда, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ памяти ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, управлСния большими кусками нСиспользованной памяти ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ лишнСй памяти ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ОБ. Кэш ΠΈΠ·Π±Π°Π²Π»Π΅Π½ ΠΎΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² привязкС ΠΊ ядрам CPU, Π½ΠΎ откатываСтся Π½Π° модСль ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² привязкС ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Π² случаС отсутствия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² ядрС ОБ (привязка кэша ΠΊ CPU Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² свСТих ядрах Linux). БэкСнд ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠ°ΠΊ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ страницами памяти, Ρ‚Π°ΠΊ ΠΈ со страницами ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (hugepage).

 Google wis nerbitake versi anyar saka sistem alokasi memori TCMaloc

Fitur utama TCMalloc:

  • Alokasi memori cepet lan deallocation nggunakake caching. Umume operasi alokasi memori bebas kunci, njamin skalabilitas sing apik kanggo aplikasi multi-utas sing paralel banget;
  • Panggunaan memori sing fleksibel, ngidini wilayah memori sing dibebasake bisa digunakake maneh kanggo obyek kanthi ukuran sing beda-beda utawa bali menyang sistem operasi;
  • Overhead saben obyek sing murah amarga alokasi kaca obyek sing seragam lan perwakilan sing efisien saka obyek cilik. Ukuran kaca logis 4KiB, 8KiB, 32KiB, lan 256KiB didhukung. Contone, nalika njaluk pamblokiran memori 512-byte, kaca 4KiB kabeh bakal dialokasikan kanggo obyek 512-byte, sing bisa ngemot wolung obyek kasebut.
  • Fine tuning bisa kanthi nemtokake ukuran cache lan paramΓ¨ter saka intensitas memori bali menyang OS;
  • Nyedhiyakake informasi rinci kanggo nganalisa panggunaan memori aplikasi.

Source: opennet.ru

Tuku hosting sing dipercaya kanggo situs kanthi proteksi DDoS, server VPS VDS πŸ”₯ Tuku hosting situs web sing bisa dipercaya nganggo proteksi DDoS, server VPS VDS | ProHoster