タグ

gcに関するmoozのブックマーク (10)

  • 言語のGC機能と参照カウント (前編) - moriyoshiの日記

    たまにはちゃんと書いたほうがいいかなと思って書いてみる。 あらまし 原始的な参照カウントベースのガーベジコレクションは、循環参照が発生すると、その参照に含まれるオブジェクトを回収できないという厄介な問題を抱えている。循環参照とは、1つ以上のオブジェクトが環状の参照関係を形成している状態のことで、このような参照を持つオブジェクトは、やがてルート (ある時点で言語ランタイムが管理しているすべてのスコープと考えてもいい) から辿りつけなくなって、解放されずにリークしてしまう。 この問題はいろんな LL 言語に見られる。 Perl の場合 use Devel::Peek qw(Dump); sub make_circular { my $foo = {}; my $bar = {}; my $baz = {}; $foo->{'bar'} = $bar; $bar->{'baz'} = $baz;

    言語のGC機能と参照カウント (前編) - moriyoshiの日記
    mooz
    mooz 2012/04/01
    perl は参照カウント方式
  • RubyのBitmap Marking GCによるメモリ使用量の改善(意訳) - I am Cruby!

    GCそういえばBitmapMarking GCについて@m_stさんにInfoQで質問をうけました。 だいぶん残念な英語を返したのですが、向こうのインタビュイーさんの方でいろいろ修正していただいたみたいです。感謝感謝。 で、ちと意訳ですが以下に日語訳も書いておきます。 ちょっとだけ補足したいこともあったので。 InfoQ Japanの方でも日語訳していただいてます。ありがとうございます。 CGの話も追加してもらったみたいですね。 RubyのBitmap Marking GCによるメモリ使用量の改善原文 Narihiro Nakamuraによって書かれたGCの最大停止時間を短くするLazy Sweep Garbage Collector(参照:InfoQによるレポート) が、Ruby1.9.3には導入されている。 最近、Narihiroはcopy-on-wirte(CoW) friend

    mooz
    mooz 2012/03/25
    オブジェクトのヘッダ毎に Mark & Sweep のマークビットを置いていたため CoW と相性が良くなかった.これを,マークビット用のビットマップ領域に変更し CoW フレンドリに.
  • Mostly-Concurrent Mark & Sweep GC のアルゴリズム

    目次 1. 前置き 2. HotSpot VM 1.4.x の GC の種類 3. Mostly-concurrent Mark & Sweep 4. 応用 4.1 世代別 GC との組み合わせ 4.2 カードマーキング (Card Marking) 4.3 並列化 (Parallel GC) 4.4 ビットワイズ・スイープ (Bitwise Sweep) 4.5 インクリメンタル・コンパクション (Incremental Compaction) 5. 参考文献 脚注 コメント 1. 背景 ガーベージコレクション(GC) には色々なアルゴリズムが存在するが、大雑把に言って Stop-the-World (STW) 型 GC と On-the-fly 型 GC に大別される。 STW 型の GC はプログラムの実行中にはガーベージの回収を行わず、メモリが枯渇した時になって始めてガーベージの回

    mooz
    mooz 2011/08/28
  • たくさんタブを開く人にとってFirefox 5は福音となったか - 射撃しつつ前転 改

    3ヶ月ほど前に、たくさんタブを開く人にとってFirefox 5は福音となる…かも という記事を書いた。 6/21にFirefox 5がリリースされ、実際にFirefox 5が使えるようになった。確かに、Firefox 5になってから、CPU使用率は下がったようだ。タブを100個以上開いた場合でも、CPU使用率は5%程度にまで下がっている。そういう意味では恩恵は大きい。 ここで話が終わればいいのだが、今度は数秒に1度のCPU使用率のスパイクが気になるようになってきた。環境によってスパイクぶりは違ってくるのだが、会社のFirefoxだと、CPU使用率が80%程度にまで一瞬だけ上がる。しかも、そのたびにブラウザが固まる。最近は会社だと暑くて数秒に1回ファンがうるさく回るので、Firefoxを使えなくなってしまった。 数秒に一度のCPU使用率の上昇というと、まず疑うべきはGCだろう。「firefo

    たくさんタブを開く人にとってFirefox 5は福音となったか - 射撃しつつ前転 改
    mooz
    mooz 2011/07/12
    javascript.options.mem.log を true にすると GC の走るタイミングでログを吐いてくれるように.CC: Cycle Collector.
  • Private Presentation

    Private content!This content has been marked as private by the uploader.

    Private Presentation
  • Compartments

    Andreas Gal Entrepreneur. Technologist. Former CTO Mozilla, CEO Silk Labs. Now  Heap We have implemented a major change to the way Firefox manages JavaScript objects. JavaScript objects include script-instantiated objects such as Arrays or Date objects, but also include JavaScript representations of Document Object Model (DOM) elements, such as input fields or DIV elements. In the past, Firefox h

    Compartments
    mooz
    mooz 2010/10/14
    Gecko 2.0 で入る GC Compartments の解説.
  • throw Life - Dalvik VMのGarbage Collection概要

    ちょっと時間ができたので、知り合いのブログを読みあさってました。 すると、安藤恐竜さんとこでこんな翻訳記事を見つけました。 Track memory allocations(日語超訳) 大半のケースでは、数多くの小さくて短命なオブジェクトが原因でGCが起動される。世代別GCのような場合には、このようなオブジェクトの回収を最適化し、頻繁にGCが起動されることを防ぐことができる。AndroidのGCは、残念ながらそのような最適化を行うことができず、パフォーマンスに影響の多い一連のコードの中で、短命なオブジェクトを作ると、そのままアプリケーションの性能にとって影響が多くなってしまう。 マジっすか?!一応原文もチェック。 Track memory allocations Most of the time, garbage collection occurs because of tons

  • われわれは、GCをX倍遅くできる

    1. われわれは、GCをX 倍遅くできる We can make the GC X times slower than the original nari/中村 成洋 ネットワーク応用通信研究所 われわれは、GCをX倍遅くできる - We can make the GC X times slower than the original Powered by Rabbit 0.6.5 5. 自己紹介 ✓ nari/中村 成洋 ✓ @nari3, id:authorNari ✓ NaCl勤務 4/221 われわれは、GCをX倍遅くできる - We can make the GC X times slower than the original Powered by Rabbit 0.6.5 6. 自己紹介 ✓ CRubyコミッタ ✓ 主にGCについて考える ✓ 「俺がGCだ」 (こうですか、わ

    われわれは、GCをX倍遅くできる
    mooz
    mooz 2010/08/29
  • Network Attached Processing の Pauseless GC

    更新履歴 (2005.11.18) 脚注*2を加筆。 (2005.11.17) 文章を推敲。 (2005.11.14) NMT bit の read barrier について嘘を書いていたので修正。 目次 前置き Pauseless GC Marking Phase Relocation & Remap Phase おしまい 参考文献 Azul Sysmtes (米日) は Java や .NET に特化した専用計算機 Network Attached Processing (NAP) を提唱し、 製品として Azul Compute Appliance を開発した。 Azul Compute Appliance は、 すでに稼動中の Solaris/Linux の J2SE/J2EE システムの Java VM を Azul Systems が提供するスタブ JVM に置き換えるだけで、

  • GC本読書会 - 兼雑記

    記憶をダンプ。どれも別に当に正しい議論であるかは不明。もっと重要な論点とかあったら教えていただければとてもうれしいです。 「GCってスループットvsレイテンシってよく言うわけですけど」 「実際 GC する言語でスループット欲しいとか思ってるユーザはいるんですかねー。ベンチマークはかるならスループットだろうけどねえ」 組み込み系の人が多い関係もあってか、みんなレイテンシの方が…って感じみたいだった。スループットが欲しい局面としては Java でバッチ処理する時とかは速いに越したことはない的なことを言われて、ああやっぱそいうのかなぁと。 ただ、バッチ処理とかって別に Java じゃなくても C++ で書いてもメモリ管理とかそんな大変じゃないものが多いような…ということと、 GC にかかってる時間ってまぁそもそも全体から見てそんなに多くはないはずで、そこが仮に 2 倍速くてもなー、とは思った。

    GC本読書会 - 兼雑記
    mooz
    mooz 2010/04/25
    GC本読書会の感想.
  • 1