jemalloc
/tcmalloc
のような高性能汎用アロケータをメモリプールに使用したいと考えています。これを行うためのガイドがありますか? malloc
のドロップイン代替品としてjemalloc
/tcmalloc
を使用したくありません。カスタムメモリプールマネージャーでtcmalloc/jemallocを使用する
私はlibarena
を使用し、大きなメモリ領域(2GB)を彫刻するメモリプールを持っています。私は、このアリーナに例えば1GBのような固定サイズのオブジェクトプールを作成したいと考えています(gslice
)。 (Bonwickスラブアロケータのように)、可変サイズ汎用割り付けに残りのメモリを使いたいとします。私はjemalloc
/tcmalloc
このメモリ領域を使用したいと思います。これは可能ですか?私はどのように進むことができますかに関する任意のアイデア?代替ライブラリがある場合は、それについても聞きたいと思います。
この回答にお答えいただき、誠にありがとうございました。私のhttp://stackoverflow.com/questions/23341587/malloc-like-function-using-custom-heap自分の質問をご覧ください。 – Vality
私は、私たちのアプリ専用のアロケータを書きました。本当の気の利いたアイディアであることが判明したことの1つは、すべての可能な割り当てを少数の「量子」サイズに減らすという概念でした。 4k = 8バイト未満、4k..16k = 16バイト...最大64mbまで私は結局のところ、最大約64 MBまで、約1000種類の異なるサイズしか持っていませんでした。無駄なスペースのサイズは割り当てのサイズの関数であったので、無駄なRAMは低かった。これにより、各サイズのリサイクルパイルが可能になりました。パイルがそのサイズで空でない限り、フリーは単なるプッシュであり、allocはポップでした。 – johnnycrash
私はあなたに答えがありませんが、カスタムアロケータのための追加アリーナとしてメモリを割り当てることに関するこのjemallocスレッドに関する有用な情報があります:http://www.canonware.com/pipermail/jemalloc-discuss/2015 -January/000988.html – acanaday