C++ AdventCalendarの12日目 普段私はWEBのフロントエンドを仕事にしている。 つまり使う言語はjavascript/typescript等のScript言語だ。 ただ前職や趣味、OSS等でC++によく触っていたので昔実装したmallocの話をすることにした。 mallocとは mallocとはC言語のstdlib.hに含まれるメモリ割り当て関数のことで、 C++やその他の多くの言語で内部的に利用されている。 ヒープを割り当てる方法はいくつかあるが、このmallocがもっともメジャーといえるだろう。 mallocを再実装した 今回はmallocを自分で再実装してちょっと早くした話を書く。 再実装した理由は色々あるが最も大きな理由はただの好奇心。 yatscというtypescriptのコンパイラをC++で書こうと思って実装を始めたときに作った。 ただしyatsc自体は未完で
dlmalloc, tcmalloc, jemallocについて,以下の各記事を読めば各mallocのアルゴリズムはわかるはず. dlmalloc Linuxの一部やAndroidのDalvik VMで利用されている.シンプルながらうまく考えられている. チャンク(連続空き領域1つ)の境界と構造体の境界が違う所が罠. http://g.oswego.edu/dl/html/malloc.html http://mkosaki.blog46.fc2.com/blog-entry-241.html にわかりやすい講演資料が,と思ったら動画がprivateになってる… tcmalloc thread-caching malloc. Googleで利用されている. スレッドがキャッシュ持つのでfreeしてもメモリ利用量が減らない!のが罠. http://goog-perftools.sourcef
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く