https://github.com/google/tcmalloc
- Apache License 2.0
- C++11以上
- Linuxのみサポート
- 特徴:
- 割当失敗時、例外を投げずにクラッシュする
- 論理ページサイズは4KiB、8K、32K、256Kから選択可能
- デフォルトは8KiB
- 細々した割当が多ければ、ページサイズは小さい方が良い
- メモリをOSに返す頻度を調整可能
- 仕組み:
- https://github.com/google/tcmalloc/blob/master/docs/design.md
- フロントエンド:
- 空きメモリを保持するキャッシュ
- スレッドまたは論理コアに1つ
- ミドルエンド:
- 空きメモリを保持するキャッシュ
- メモリブロックの分割や統合を行うフリーリスト
- バックエンド:
- メモリチャンクを管理する
- OSとメモリをやり取りする