タグ

mallocに関するkoko1000banのブックマーク (7)

  • Omicron カーネル読書会/67

    YLUG 2006-09-22@ミラクルリナックス お題は,小崎さんのglibc malloc話.LILO(LMS)での講演の発展系. 革命の日々! Video 古典的(K&R) malloc free list,first fit 利点:シンプル.フラグメンテーションがなければ,O(1). 欠点:小さいmallocが多いと,すぐフラグメンテーションし,メモリ効率が悪くなる.freeがO(n).brk が呼ばれるとき,リストを一周するので,キャッシュが汚れる. 今どきのアプリ(LLとかGUI)は小さいmallocが多発する. freeしたとき,free listのheadを今開放したブロックを指すようにする.ここポイント. glibc malloc best fitアロケータ サイズごとにfree listを複数用意する small bin (<= 512B) 64個 large bin

  • malloc.c ||| Apribase

    malloc を実装する方法として、フリーリストを用意し、空きヒープ領域を管理する方法があります。

    malloc.c ||| Apribase
  • 文字列の繰り返し - hogelogの日記

    rubyのソースコードを眺めていたらrb_str_timesの実装がおもしろかったので、実際そういった書き方をすることでどれだけパフォーマンスに差が出てくるのか試してみました。 http://codepad.org/AQbS4Ilu #include <stdio.h> #include <stdlib.h> #include <string.h> inline unsigned long long rdtsc() { unsigned long long ret; __asm__ volatile ("rdtsc" : "=A" (ret)); return ret; } char *times_simple(char *str, size_t times) { size_t i, len = strlen(str); char *str2 = malloc(len*times + 1)

    文字列の繰り返し - hogelogの日記
  • Linuxのメモリまわり - tmtms のメモ

    ちょっと前から groonga を使うとプロセスサイズが肥大化するのが気になっていて、メモリ関係を色々調べていたのですが、そこでわかったことなどを書いときます。 malloc() しただけではOSのメモリは使用されない メモリを1GB獲得するだけのこんなプログラムを作って実行してみます。 #include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char *p; char buf[1024]; int i; p = malloc(1024*1024*1024); gets(buf); for (i=0; i<1024*1024; i++) memcpy(p+i*1024, buf, sizeof(buf)); pause(

    Linuxのメモリまわり - tmtms のメモ
  • でらうま倶楽部 : iPhone Objective-Cではないコードのメモリリークを特定するには(今回はソース付き)

    2010年08月05日15:38 カテゴリiPhoneプログラム iPhone Objective-Cではないコードのメモリリークを特定するには(今回はソース付き) 今回はメモリリークの話です。 iPhoneでのメモリ管理ですが、Objective-Cのクラスをフル活用してコードを書いているウチは問題ないと思います。InstrumentsのLeaksを使えばコードのどの場所で確保されたメモリかが一目瞭然だと思うからね。 (きっとC++でもそんな感じに違いない) なーのーでーすーがー! 問題なのがCのmalloc()とかcalloc()とかrealloc()とか。これ、InstrumentsのLeaksでも「Malloc area 8K」とかって表示されるんで、その表示の中からメモリリークを探し出すのが至難の技….。 まぁメモリ確保時にクラス名の指定も何もないんだから仕方ないのは判ってるんで

  • monkey coders' - Guard Malloc(libgmalloc) について

    ここは管理人pigeon6と同じようなコンピュータとプログラムとアレゲが好きなおさるさんのためのサイトです。たぶん。 Guard Mallocはmalloc, callocなどで確保したメモリに対して不正な操作を行ってしまう類のバグの検出を助けるデバッグ用のライブラリです。Guard Mallocを使ってアプリケーションを実行すると、そうしたメモリに対してのバグがある場合、アプリケーションがバグの位置でハングアップします。 - Manual page for libgmalloc Xcode上でのGuard Mallocの使い方 メニューから「実行>Guard Mallocを有効にする」を選択して、チェックをつけるとGuard Mallocを有効に出来ます。Guard Mallocには各種オプションがありますが、これは実行時の環境変数をセットすることで設定します。 Guard Malloc

  • ダンプを読めば世界がみえる - 神様なんて信じない僕らのために

    dlmallocを読み下し中。 何をしているかは大体解った。 メモリブロックに対して何かを行おうとするプログラムを読み解くとき、 メモリダンプを眺めるということが、 非常に有効だと思った。 プログラムの、メモリの海を見るために必要なのはやはりメモリダンプだ。 メモリをeeとかffとか適当な値で埋めておいて、 ある関数をコールして、 戻ってきたら海を眺める。 そうすると、海には着実な変化が訪れている。 こいつはサイズ(インテジャ)だな、 こいつはアドレスだな。 色んなことがそこには見える。 dlmallocの何が素敵かって、 メモリブロックサイズが4の倍数であることに目を付けて、 0ビット目には一つ前のチャンクの情報の有無を、 1ビット目には使用か未使用かのフラグを設けたことだ。 これはRubyの実装などでも行っていることだけれど、 こうしたことに気が付く人たちは当に凄い、と思う。 ドキド

    ダンプを読めば世界がみえる - 神様なんて信じない僕らのために
  • 1