タグ

gcに関するs5otのブックマーク (6)

  • GC用プロファイラ作った! - I am Cruby!

    GC, Rubyどういうもの? GC.profile = true # 計測対象の処理 GC.display ってすると ---- 以下のプロファイル情報が出力される ----- GC 10 invokes. Index Use Size(byte) Total Size(byte) Total Object GC time(ms) 0 338620 360448 18018 0.00000000000000014129 1 605620 622592 31122 0.40010000000000001119 2 1080300 1097728 54873 0.00000000000000007657 3 1931420 1949696 97461 0.40000000000000018874 4 3470040 3489792 174447 0.4001000000000003442

  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

    s5ot
    s5ot 2008/06/26
  • GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)

    GC¥¢¥ë¥´¥ê¥º¥à¾ÜºÙ²òÀâ ÆüËܸì¤Î»ñÎÁ¤¬¤¹¤¯¤Ê¤¤GC¥¢¥ë¥´¥ê¥º¥à¤Ë¤Ä¤¤¤Æ¾ÜºÙ¤Ë²òÀ⤷¤Þ¤¹ ¥È¥Ã¥×¥Ú¡¼¥¸¥Ú¡¼¥¸°ìÍ÷¥á¥ó¥Ð¡¼ÊÔ½¸ GC ºÇ½ª¹¹¿·¡§ author_nari 2010ǯ03·î14Æü(Æü) 20:47:11ÍúÎò Tweet ¤³¤ÎWiki¤¬Ìܻؤ¹½ê GC¤È¤Ï¡© GC¤ò³Ø¤ÖÁ°¤ËÃΤäƤª¤¯»ö ¼Â¹Ô»þ¥á¥â¥ê¹½Â¤ ´ðËÜ¥¢¥ë¥´¥ê¥º¥àÊÔ Reference Counter Mark&Sweep Copying ±þÍÑ¥¢¥ë¥´¥ê¥º¥àÊÔ IncrementalGC À¤ÂåÊÌGC ¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È·¿GC LazySweep TwoFinger Lisp2 Pa

    GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)
    s5ot
    s5ot 2008/06/25
  • どきどきの2ndDay - I am Cruby!

    RubyKaigi, RubyIRCログここに置きました。rubykaigi_gc_irc.log概ね好評で嬉しい限りです。 動画スタッフの方が動画を上げてくださいました。ありがとうございます。kaigifreaks+=1また、RubyKaigi2008で検索するといっぱい出てくるのでよろくね。ニコニコ動画(夏) 内容写真は竹迫さんのFlickrから。Flickr: takesako’s Photostreamどもです!今日はサブセッションでしゃべくりました! 直前はまぁ凄く緊張したわけですが、しゃべり出すとそうでもなく。みなさんに暖かい目でみてもらえたのでよかったなぁと。あと、不真面目な資料作ってよかったなぁと思いました。let’s gc improve.pdf 立ち見の人も出るくらいの盛況ぶりで(これは休憩が入ったからかな)最後の拍手に感動してしまった。。(TT) これもスタッフの方々

  • Boehm GCを使おう

    はじめに CやC++である程度大きなプログラムを書く場合,最大の問題点は メモリ管理である.複雑なプログラムの場合,必要なメモリの量を あらかじめ見積っておくのが難しいから,メモリが必要になった 時点でメモリを確保し,不要になったらそれを解放するという プログラミングスタイルが一般的だ.Cで言えばこんな感じだ. char *x; ... x = (char*)malloc(n*sizeof(char)); ... x を使って仕事をする ... free(x); このプログラミングスタイルの問題点は,おおまかに言って こんなところだろう. free(x) を忘れると,プロセスがどんどん大きくなってしまう. free() してはいけないものを間違ってfree()する(たとえば,同じ メモリを2回 free() してしまうとか)と,その free() の中でなく, 全然違う場所でエラーが発生す

    s5ot
    s5ot 2008/06/23
  • [ruby] Rubyのgc.cを読んでみたまとめ - 本当は怖いHPC

    しばらく前からtwitterRubyのGC読んでるとか読んでないとか言って、結局エントリ書いてなかったのでまとめ。 RubyのGCは、mark and sweepというアルゴリズムを用いている。これは、「必要だとわかっているオブジェクトからスタートして、再帰的にmarkをつけていき、最終的にmarkが無いものを開放するというものだ。まあ発想は素直といえば素直。 GCの流れを説明しよう。mark and sweepなので、markとsweepという2つのフェーズから構成されている。 まず、説明をわかりにくくするためにsweepフェーズから説明すると、オブジェクト用の領域に関してはmallocを使って確保したものをfreeせずに使いまわしている(たぶんそっちのほうが速いから)。free()のコストも馬鹿にならないのだ。だから、最初に書いたmarkがついていないものを開放するというのは、実際に

    [ruby] Rubyのgc.cを読んでみたまとめ - 本当は怖いHPC
    s5ot
    s5ot 2008/06/17
  • 1