タグ

GCに関するpipoのブックマーク (10)

  • ブラウザにおけるメモリリークを解決するために読んでおけると良い資料 - mizdra's blog

    最近趣味仕事の Web アプリケーションでメモリリークに遭遇して、頑張ってメモリリークの原因を突き止めて修正する、ということがあった。その過程でメモリリークについて色々調べて知見が溜まったので、学習資料の紹介という形でアウトプットしてみる *1。 前置き 紹介する記事がかなり偏っていることに注意 冒頭で触れたメモリリークを解決するために読んだ記事をまとめただけなので、内容にそれなりの偏りがある 例えば id:mizdra が遭遇したメモリリークは全てブラウザ上で発生していたものだったので、これから紹介する内容も主にブラウザにおけるメモリリークに焦点を当てたものになる GC がどうメモリをどう解放しているか、何故メモリリークが発生するのかは全てカット 調べれば色々な記事が出てくるので、必要に応じて読んでください 基的な知識を抑える まずメモリリークとメモリ撹拌の違いを学ぼう どちらも同じ

    ブラウザにおけるメモリリークを解決するために読んでおけると良い資料 - mizdra's blog
  • C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita

    インクルードするだけで使えるNon-movingで正確なGCをC言語用に作りました。 行数がコメントを除いて100行に満たない非常に小さなライブラリです。 GCのアルゴリズムとしてはCheneyのコピーGCを採用しています。 通常のCheneyのコピーGCではメモリ空間のうち半分が無駄になってしまいメモリ効率が悪かったり、 GC発生時にオブジェクトが移動してしまいC言語のようなポインタを直接触れる言語との相性が悪いという欠点がありました。 今回はヒープ全体を二重連結リストとして管理することでそのような問題を解決しています。 ちなみにこれはTreadmill GCのアイデアと同じです。(が、アルゴリズム自体はTreadmill GCではありません。) APILinuxのlist.hに非常に近い見た目になっています。 ある構造体をgcで管理したい場合はstruct gc_head型のメンバを

    C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita
  • Androidゲーム開発入門、私が2Dアクションゲームをつくるまでに蓄積されたTips - shimobayashiの日記

    ここ1週間くらいずっとAndroidゲーム開発を手探りで進めていた。そして、めでたく、ようやく、初のAndroid向け2Dアクションゲームをリリースすることができました。 Fire Rescue - Android マーケットhttps://market.android.com/details?id=name.shimobayashi.firerescue内容としては http://www.shimobayashi.name/ のBurningPanicというゲームAndroid向けに移植した感じです。なお、ゲームBGMはuzzuさん(http://twitter.com/uzzu)につくっていただきました、感謝。(スクリーンショットが若干おかしいですが、OpenGLを使った画面をPCでうまくキャプチャーできないようです。無念。) つきましては、またもやヘドロのごとくTipsが蓄積され

  • 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 に置き換えるだけで、

    pipo
    pipo 2010/07/13
  • Track memory allocations(日本語超訳) - Android Zaurusの日記

    前回の「Avoiding Memory Leak*1」に続いて、Androidのメモリ関連で興味深い記事だったので、また30分ほどでぐゎっと超訳。誤訳御免、ツッコミ歓迎。JavaとGCは切っても切れないけど、パフォーマンスに影響しないようにアプリケーションを書くには重要なポイントだと思うし、Androidのチームがメモリ管理に気を配っていることが読める。 Track memory allocations Romain Guy著 最初のAndroid携帯(T-Mo G1とADP1)のハードウェア性能はびっくりするくらいだけど、でも効率的なモバイルアプリケーションを書くのは一筋縄ではいかないことが多い。Androidのアプリケーションは、Dalvik仮想マシンのガベージコレクタ(GC)によってメモリが自動的に管理されることに依存している。メモリアロケーションを意識していないと、時々GCはパフォ

    Track memory allocations(日本語超訳) - Android Zaurusの日記
  • 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

  • K&R malloc/free作ってみた - narihiro.info(動画)

    K&Rにのってたmalloc/freeを作ってみました。(約60分) 正気の沙汰とは思えないほど長いですね。反省。 まろっくはむずかしい #include <stdio.h> #include <stddef.h> #include <stdlib.h> /* K&R malloc Heap +--------------------------------------------------------------------- | alloc |header next ...........| allocated |header next.... | +--------------------------------------------------------------------- ^ +-----------------------------^ +-------------

    pipo
    pipo 2010/05/19
  • Every Byte is Sacred - 書評 - ガベージコレクションのアルゴリズムと実装 : 404 Blog Not Found

    2010年03月20日04:30 カテゴリ書評/画評/品評Lightweight Languages Every Byte is Sacred - 書評 - ガベージコレクションのアルゴリズムと実装 著者より献御礼。 ガベージコレクションの アルゴリズムと実装 中村成洋 / 相川光 / 竹内郁雄監 これほど地味かつ即実務に役立たない、しかし確実にプログラマーの滋養になるが出版される日の出版界に乾杯!世界で二番目(著者調べ)、国内で初のGCは、実に滋味豊かだ。 とはいえ、書はこの話題に関してMECEというわけでもない。というわけでentryでは書に何が書いていないかを主に紹介していく。何が書いてあるかは書で確認すればよいのだから。 書「ガベージコレクションのアルゴリズムと実装」は、コンピューターの資源管理の技術の一つ、ガベージコレクション(以下GC)についてまるまる一冊を費

    Every Byte is Sacred - 書評 - ガベージコレクションのアルゴリズムと実装 : 404 Blog Not Found
    pipo
    pipo 2010/05/19
  • Scheme/B.GC調査/02.GC概要 - Mona OS developers Wiki

    このページは何か? (by ひげぽん) † ひげぽんがいろいろな資料を読んでローカルに雑然とメモしていたものを貼ります。 ↑ 古典的なGCの基 † GC対象オブジェクトの走査を開始する出発点をルートと呼ぶ。 ルートから到達可能であれば「アクティブ」である GCの流れ 空きがない 到達可能/不可能/未使用に分類 マーク リファレンスカウント コピー 到達不可能なオブジェクトの回収 古典的なGCでは 空きがない→回収という流れなので、走査する対象の空間が大きいとアプリケーションが止まったように見える。 ↑

    pipo
    pipo 2010/05/19
  • throw Life - Dalvik VMのオブジェクト管理についての概要

    GCに続き、Dalvik VMのオブジェクト管理についての概要です。オブジェクトの管理はBitmapで行っていますが、その実装にはBionicと連携した美しいテクニックが含まれていることが分かりました...

  • 1