Google versi anyar saka sistem alokasi memori , sing digunakake ing akeh proyek Google internal. Kode TCMalloc ditulis ing C ++ lan 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 mung Linux (x86, PPC).
Wigati dicathet yen wiwit taun 2005 ana varian tcmalloc liyane, yaiku minangka bagéan saka paket (Google Performance Tools). Iki loro 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 saka C ++ 14 lan alokasi memori karo saka C++ 17.
TCMalloc ΠΈΠ· ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²: ΡΡΠΎΠ½ΡΡΠ½Π΄Π° Ρ ΠΊΡΡΠ΅ΠΌ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ Π΄Π»Ρ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΡΡΠ° ΡΡΠΎΠ½ΡΡΠ½Π΄Π° ΠΈ Π±ΡΠΊΠ΅Π½Π΄Π°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π³ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΊΡΡΠΊΠ°ΠΌΠΈ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΡΠ½Π΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΠ‘. ΠΡΡ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ ΠΎΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ ΠΊ ΡΠ΄ΡΠ°ΠΌ CPU, Π½ΠΎ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ ΠΊ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π² ΡΠ΄ΡΠ΅ ΠΠ‘ (ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊΡΡΠ° ΠΊ CPU ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ²Π΅ΠΆΠΈΡ ΡΠ΄ΡΠ°Ρ Linux). ΠΡΠΊΠ΅Π½Π΄ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠ°ΠΊ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΈ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° (hugepage).
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
