タグ

2006年12月27日のブックマーク (3件)

  • Gaku's Space Wiki

    Garbage Collection 日ではガベージ・コレクションと表記する。 ”ゴミ集め”という意味。 使われなくなったメモリ領域を回収するアルゴリズムのこと。 allocate + free で行っていたメモリの開放を allocate + GC でという役割。 メモリ回収(ガベコレ)とメモリ断片化への対処(メモリ・コンパクション)は別の話。 基アルゴリズム 参照カウント ( Reference Count ) アルゴリズム 領域に参照数をカウントする変数を用意する。 参照される度に+1、解放される度に-1する。 カウンタが 0 になればどこからも参照されていないと判断して削除。 利点 負荷が分散される。(トータル時間は減らないが、停止時間を非常に短く出来る) その場で解放される。 欠点 参照がサイクルしてる場合(相互に参照している場合)の解放ができない。(致命的。相互参照しない場

  • Debugging with GDB - 異なる言語の使用

    [Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]   異なる言語の使用 異なるプログラミング言語であっても共通点があるのが普通ですが、 その表記法が全く同様であるということはめったにありません。 例えば、 ポインタ pの指す値を取り出す方法は、 ANSI Cでは*pですが、 Modula-2ではp^です。 値の表現方法 (および表示方法) もまた異なります。 16進数は、 Cでは`0x1ae'のようになりますが、 Modula-2では`1AEH'のようになります。 いくつかの言語については、 言語固有の情報がGDBに組み込まれており、 これにより、 プログラムを記述した言語を使って上記のような操作を記述したり、 プログラムを記述した言語の構文にしたがってGDBに値を出力させることができます。

    higepon
    higepon 2006/12/27
    gdb におけるC++
  • Gauche:メモリリーク

    Gaucheで書いたプログラムがメモリをリークしているのですが、これの原因調査は、やっぱりコードの怪しい部分を見ていく以外ないでしょうか?特別なテクニックはありますか? skimu: なぜメモリリークしているという結論に至ったかの過程を具体的に、できたら他の人が再現可能な形でGauche:Bugs なり、gauche-devel なりに報告しましょう。 ちょっとしたデーモンを書いたのですが、それを動かしていると数日でメモリを使い果たして死んでしまうので、メモリリークと判断しました(というか確かにリークしている)。疑っているのはGaucheではなく自分のプログラムで、なにかのポインタが残ってしまっているのだと思うのですが、それを調べるのが大変で。これをデバッグするときに、たとえば現在の時点でアロケートされているオブジェクトの個数がクラスごとにわかったりすれば、どこらへんがおかしいのかあたりが

    higepon
    higepon 2006/12/27
    GCがはまるパターンについて