TCMallocのメモ

 butterfly search(以下BF)ではmallocを多用しているのでGoogleのTCMallocを使用してみた。

TCMallocはGoogle独自のC/C++用メモリアロケータである。


■結果

インデックス作成時間

  • TCMalloc未使用 2時間4分
  • TCMalloc使用  2時間19分

(12スレッド  メモリ確保量1GB×12スレッド=12GB )

結論としては性能劣化でしたが、特筆すべきはTCMallocのメモリ開放性能。TCMallocはまじ高速。通常より20倍くらい速そう。(きちんと測定できておらず申し訳ない)

BFはreallocを呼ぶ割合が多いことに気づきました。したがって上記の結果は参考にすらならないと思います。申し訳ありません。(2023.8.4追記)


■今後

  • CPUの数が12では並列度が足りないのかも。もっと高性能なCPUを入手したら再チャレンジしてみよう。
  • ブログでTCMallocの性能を公開している人がいるが、ぜひマルチスレッド時の性能を測ってほしい。TCMallocのコンセプトはマルチスレッド時の性能ですからね。シングルスレッドの性能で速いとか言われても。
  • ブログでTCMallocの性能を公開している人がいるが、ぜひ解放時の時間も含めて語ってほしい。 mallocしたらfreeするよね。普通。
  • TCMallocはチューニング可能との事なのでいつかやってみようかと。
  • TCMallocはWindowsとの相性が悪いのかもしれない。であればGoogleとしてはどうしようもないね。

コメント

このブログの人気の投稿

よく使われる四文字熟語ランキング

butterfly search 4.1 をリリースしました。