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としてはどうしようもないね。
コメント
コメントを投稿