tcmalloc爲什麼快,如何替換系統malloc

使用了thread cache,小塊的內存分配都可以從cache中分配。多線程分配內存的情況下,可以減少鎖競爭。

tcmalloc官方文檔見:
https://gperftools.github.io/gperftools/tcmalloc.html

tcmalloc可以替換大多數系統、不同編譯器環境下的內存分配函數(malloc/free/new/delete),針對不同的編譯器和操作系統,替換的方式有所不同。

對於GCC編譯的glibc的替換,則採用GNU C中提供的__attribute__(alias)別名機制,定義和glibc中實際調用的函數同名的函數,並將其聲明爲tcmalloc對應函數的別名。gcc glibc中內存分配的函數爲弱符號(week symbol),在鏈接時便順利被tcmalloc替代。

其他環境下的替換方式,可參見libc_override_*.h
————————————————
版權聲明:本文爲CSDN博主「天藍控」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/shiludeng/article/details/78615797

發佈了6 篇原創文章 · 獲贊 3 · 訪問量 4570
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章