最速のmallocの実装を見つけよう!

 プログラミングリハビリも兼ねてmallocの実装をいろいろとテストして遊んでみた。
 

 

 テストしたソースファイルは後日アップロード予定。アップロードした。
 単純な処理速度のみでの性能評価のためフェアーではない事を注意されたし。書きかけ


 マルチコアCPUかつマルチスレッドが使われるプログラム上では最速と謳われているfirefox3のjemalloc.cをVC6でコンパイルできるようにソースコードの手直しを行っているのだが、VC8にしか存在しない組み込み関数を使っていたり、Windows98以降にしか使えない関数を組み込んでいたりなので直すのにとても手間のかかる作業が必要だと分かった。mallocの修正となるとデリケートな関数なだけにデバッグも大変なので移植する気が失せていく。

 mallocの種類には以下のようなものがある*1


krmalloc()
 B Kernighan, D Ritchie
dlmalloc()
 Doug Lea
phkmalloc()
 Poul-Henning Kamp
lkmalloc()
 P Larson, M Krishnan
jemalloc()
 Jason Evans
その他多数