タグ

関連タグで絞り込む (3)

タグの絞り込みを解除

GCに関するhohoho_ho2005のブックマーク (9)

  • Concurrent Mark-Sweep Garbage Collection #jjug_ccc

    Re-Introduction: Concurrent Mark-Sweep Garbage Collection @ Japan JUG Conference.Read less

    Concurrent Mark-Sweep Garbage Collection #jjug_ccc
  • 視覚化による5つのガベージコレクションアルゴリズム入門 | POSTD

    ほとんどの開発者は、自動のガベージコレクション(GC)を当たり前のように使っています。これは、私たちの仕事を容易にするために言語ランタイムが提供する素晴らしい機能の1つです。 しかし、最新のガベージコレクタの中をのぞいてみれば、実際の仕組みは非常に理解しづらいことが分かります。実装の詳細が無数にあるため、それが何をしようとしているのか、また、それがとんでもなく間違った事態を引き起こしかねないことについて十分理解していない限り、すっかり混乱してしまうでしょう。 そこで、5種類のガベージコレクションアルゴリズムを持つおもちゃを作ってみました。小さいアニメーションはランタイムの動作から作成しました。もっと大きいアニメーションとそれを作成するコードは github.com/kenfox/gc-viz で見ることができます。単純なアニメーションによってこうした重要なアルゴリズムを明らかにできることは

    視覚化による5つのガベージコレクションアルゴリズム入門 | POSTD
  • GitHub - authorNari/g1gc-impl-book: 徹底解剖「G1GC」実装編

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - authorNari/g1gc-impl-book: 徹底解剖「G1GC」実装編
  • 第5章 ガ-ベージコレクション

    プログラムの実行時イメージ 突然だが、章を始めるに先立ち、プログラム実行時のメモリ空間の状態につ いて予習をしておこうと思う。この章ではコンピュータの低レベルな部分にか なり踏み込んでいくことになるので、あらかじめある程度の知識を仕入れてお かないと太刀打ちできないのだ。それにこの後の章になればいずれ必要になっ てくる。ここで一回やってしまえば後が楽だ。 セグメント 一般的なCプログラムではメモリ空間の中に以下の部分を持つ。 テキスト領域 スタティック変数やグローバル変数の置場 マシンスタック ヒープ テキスト領域はコードが置いてあるところ。二番目は見ての通り。マシンスタッ クには関数の引数やローカル変数が積まれる。ヒープはmalloc()で割り当てて もらうところだ。 三つめのマシンスタックについてもう少し話そう。マシン「スタック」と言う くらいだから当然スタック構造をしている。つまり

  • RubyとGCについて - mirichiの日記

    思ったことをつらつらと支離滅裂な個人的メモ。 1.シンプルマルチスレッドGC このあいだからいじってるやつだが、とりあえず世代別GCがあるのとないので3倍も違うというのはおかしいのでまだどこかバグっているんじゃないかと思う。効率面での話なのでヒープスロットの取得・解放戦略のへんが怪しい。 単純な再帰型マーク関数を2つのスレッドで同時に動かすというのは、まあそれなりに短時間で終わるのだろうが、それはあくまでも遊んでるCPUがあるという前提であって、システム全体のスループットとしてはたぶんあまり嬉しい話ではないだろう。作るのは楽だが無駄が多い。 このシンプルな手法が通用するのは関数を再帰呼び出しするというマシンスタックを使った探索の場合のみであり、たとえばmrubyrubyのようにリストを繋いだりたどったりする方法ではリストのアクセスに排他制御が必要になって思ったような性能は出ないと思われる

    RubyとGCについて - mirichiの日記
  • 徹底解剖「G1GC」実装編

    大好評『徹底解剖「G1GC」アルゴリズム編』に待望の続編が登場! HotspotVMでのGCフレームワークとG1GCの実装をソースコードを読み込みながら解き明かす。 ※書のライセンスはCC BY-SAになります。購入いただいた電子書籍は、ライセンスに基づいた上での複製、改変、再配布等を自由に行うことができます。 関連サイト著者によるオリジナル版のサイトと、ファイル管理・サポート用のgithubサイトがあります。 徹底解剖「G1GC」実装編authorNari/g1gc-impl-book - GitHub内容紹介書は『徹底解剖「G1GC」アルゴリズム編』(以降、単に『アルゴリズム編』と略す)[1]の後編として、アルゴリズムの説明だけでは見えてこない実装の部分に焦点を当てた書いたです。 各章の紹介をまじえつつ、書の概要を見ていきましょう。 ・第2章 オブジェクト管理機能 現在、Hot

    徹底解剖「G1GC」実装編
  • JRockit JVMのGCアルゴリズムとチューニングポイント - cloudcomputingはおいしいよ

    オマーン旅行 2024 2024年のゴールデンウィーク前半はオマーンの首都マスカットに旅行に行ってきたのでその旅の記録を書く。 GWにが子どもを実家に連れて帰るとのことで、5日間の自由時間が手に入ったので、ここぞとばかりに海外旅行行きを決めた。 なぜオマーン 5日しかなく、複数国を…

    JRockit JVMのGCアルゴリズムとチューニングポイント - cloudcomputingはおいしいよ
  • メモリリークとは何か - kuenishi's blog

    メモリリークに悩まされている技術者は多いだろう。メモリリークが嫌でGCという技術が開発されたといっても過言ではないし、歴史的にはC++からJavaへシフトが起きた大きな理由のひとつといっていい。Unix系の簡単な定義でいえば、ヒープ領域を指すポインタ(アドレス)をロストしてしまえばそのメモリはもう漏れたといってよい。たとえばこういったコードだ。 struct { int i; char c; } spam; int main(){ void* p; int i; for(i=0; i<1024; ++i){ p = malloc(sizeof(struct spam)); } pause(); } このコードではpause(3)の時点で約5KBのメモリが漏れている。free(3)を使えばメモリをOSに返却できるが、アドレスが分からないので返却できない。 ところが、ここでいいたいのは、メモリ

    メモリリークとは何か - kuenishi's blog
  • Garbage Collectionについてちょっと調べてみた - wyukawa's diary

    HBaseのJuliet PauseをきっかけにしてGarbage Collection(以下GC)についてちょっと調べてみました。そういえば長年Javaでお仕事している割にはGCのこと全然知らなかった(汗 GCというのは不要になったメモリを回収することをいいますがそのアルゴリズムにはいくつかあって代表的なものとして以下の2つがあります。 Mark Sweep GC Coping GC Mark Sweep GCはオブジェクトをアプリケーションからたどっていってMarkしていきます。Markが無いのは使われていないオブジェクトなのでSweepします。メリットは実装が簡単なことでデメリットはメモリの断片化、フラグメンテーションが起きることです。 Coping GCはヒープ領域を2つに分けてオブジェクトをコピーしたり移動したりすることです。メリットはスループットが高いことやフラグメンテーション

    Garbage Collectionについてちょっと調べてみた - wyukawa's diary
  • 1