タグ

gcに関するhiro360のブックマーク (11)

  • IBM Heap Analyzer - おおたに6号機blog

    IBMのヒープダンプをみて解析するためのツール. ちょっとわかりにくいところもあるけど、絞り込み検索機能もついていて、 意外と使える.リークしていると判断する基準、あの記号の意味を きちんとドキュメントに書いてほしいとは思うが、たぶんあのままだろう. http://www.alphaworks.ibm.com/tech/heapanalyzer GCログみるこちらもなかなか. http://www.ibm.com/developerworks/java/library/j-ibmtools2/index.html どこのプロダクトもなかなかドキュメントというのは追いついていかないのだなあと 世の無情を感じたり感じなかったりするのであった. ところで、ドキュメントを書いて正しい使い方、使うべきとき・使わざるべきときというのも ある程度書かれていると読み手は嬉しいのではと考えるときがある. し

    IBM Heap Analyzer - おおたに6号機blog
  • ガベージコレクションの実装法と評価

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

    hiro360
    hiro360 2008/06/29
  • メモリリークの解析に役立つJava VMのオプション「-XX:+PrintClassHistogram」 | gihyo.jp

    @ITの連載「現場から学ぶWebアプリ開発のトラブルハック」の第8回「肥え続けるTomcatと胃を痛めるトラブルハッカー」からのものです。 記事では、長時間稼働すると発生するメモリリークという非常に厄介な問題を取り上げています。通常であれば「定期的に再起動を行う」という運用で回避してしまいそうな問題に真っ向から挑み、Java 1.4.2以降で利用できるJava VMオプション「-XX:+PrintClassHistogram」を使ってメモリリークの原因を突き止めるという解決方法について解説しています。記事はちょっとしたストーリー仕立てになっており現場の雰囲気が伝わり、かつ実践的な内容となっています。 また、連載を通してGCViewerやHPROFなどさまざまなプロファイリングツールが紹介されているので、いざというときのために使いこなしておきましょう。 URL:http://www.atma

    メモリリークの解析に役立つJava VMのオプション「-XX:+PrintClassHistogram」 | gihyo.jp
  • 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(ウィキ)
  • JavaのGC頻度に惑わされた年末年始の苦いメモリ

    JavaのGC頻度に惑わされた年末年始の苦いメモリ:現場から学ぶWebアプリ開発のトラブルハック(9)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) Java言語を利用するようになって、システムを開発するうえで楽になった要素は何かというアンケートがあったとき、読者の皆さんならどのように回答するだろうか。私は迷わず、「メモリ管理」と回答する。 同時に、Javaを利用してシステム開発を行う際に、注意していること、悩まされたことは何かとアンケートがあれば、「GC(ガベージ・コレクション)」と回答するだろう。 多くのシステム開発の現場では、いまこの瞬間も、JavaのGCの挙動に悩まされ、GC

    JavaのGC頻度に惑わされた年末年始の苦いメモリ
  • 肥え続けるTomcatと胃を痛めるトラブルハッカー (1/3) - @IT

    肥え続けるTomcatと胃を痛めるトラブルハッカー:現場から学ぶWebアプリ開発のトラブルハック(8)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) メモリリークと聞いて、良いイメージを思い浮かべる開発者は少ないだろう。経験したことのある人にとっては、思い出したくない過去の記憶がよみがえるかもしれない。もしかしたら、その単語を聞くだけで胃が痛くなる人もいるかもしれない。筆者もかつてはその1人であった。 前々回の記事では、WebサーバとTomcatの間の接続において、スレッド数の不整合により発生したトラブル事例を、前回はTomcatとDBサーバの間のトラブル事例を紹介した。今回もTom

    肥え続けるTomcatと胃を痛めるトラブルハッカー (1/3) - @IT
  • “Stop the World”を防ぐコンカレントGCとは? (1/2) - @IT

    “Stop the World”を防ぐコンカレントGCとは?:現場から学ぶWebアプリ開発のトラブルハック(2)(1/2 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) Full GC問題の時代が再び到来! それまで順調に動いていたはずのWebアプリケーションが、ある時突然、応答を返さなくなる。そして、運用者があたふたしている間に、何事もなかったかのように再び動き出す。 Javaで構築したシステムにかかわる者ならば誰しもが体験するであろう事象、そうFull GC(ガベージ・コレクション)だ。Full GCが行われている間、すべてのアプリケーションスレッドは停止する。この事象は“Stop the

    “Stop the World”を防ぐコンカレントGCとは? (1/2) - @IT
    hiro360
    hiro360 2007/11/07
  • [実装編]メモリー管理を処理系任せにしてはいけない

    Javaや.NETを使うと,メモリー管理を意識しなくてもプログラミングできる。例えばJavaの場合は,Java VM(Virtual Machine)が備える「ガベージ・コレクタ」と呼ぶメモリー管理機能が,未使用のオブジェクトを破棄してメモリーを解放するといった処理を自動的に実行する(図1)。 図1●JavaVMによるメモリー管理の仕組み ヒープ領域は,生存期間の短いオブジェクトを格納する「New領域」と生存期間の長いオブジェクトを格納する「Old領域」で構成される。New領域はさらに,最初にオブジェクトを格納する領域「Eden」と,しばらく生存しているオブジェクトを格納する「世代0」「世代1」から成る。Edenに存在するオブジェクトは,生存期間が延びるにつれて,世代0または世代1に移動。世代0と世代1を何度か移動した後,最終的にOld領域に移される [画像のクリックで拡大表示] だが,処

    [実装編]メモリー管理を処理系任せにしてはいけない
  • GCの解析とチューニングポイント:CodeZine

    はじめに J2EEサーバの健康診断をする上で、GC(ガーベッジ・コレクション)の発生状況の把握は非常に重要です。GCの発生状況を監視することによって、メモリリークを発見したり、サーバの負荷状況を調べたりすることができます。 そこで、商用J2EEサーバとしてはシェアの高いWebSphere Application Serverを想定し、GCの解析方法とチューニングポイントを説明します。対象読者 WebSphere Application Serverを利用したシステム開発に携わる、開発者・アーキテクト。必要な環境サーバ:WebSphere Application Server 6.0以上解析用PC:IBM JDK 1.4.2以上がインストールされていること  IBM JDK 5.0は、developerWorksのWebページからダウンロードできます。Eclipseとセットになっています。W

  • IBMのWASはJVMやGCをどのように扱っているのか?

    IBMのWASはJVMやGCをどのように扱っているのか?:WebSphereサーバ・チューニング入門(3)(1/4 ページ) 連載は、Javaアプリケーション・サーバの1つである、IBM WebSphere Application Server(以下、WAS)についてのパフォーマンス・チューニングに関する入門記事です。チューニングといっても、実施するエンジニアによって、その方法は異なりますが、連載はWASを前提とし、かつ80%のケースをカバーすることを目標とします(編集部注:WASのインストールから学びたい読者は、「バージョン別セットアップマニュアル一覧」のWebSphere Application Serverを参照してください) 前回は、WASパフォーマンス・チューニングの主要項目について簡単な説明をし、パフォーマンス・チューニングの主要項目の1つである「トランスポート・チャネル・

    IBMのWASはJVMやGCをどのように扱っているのか?
  • OutOfMemoryエラー発生!? GCがあるのに、なぜ?

    今回の概要 稿ではWebアプリケーションの開発プロジェクトで実際に直面したメモリに関するトラブル事例の中からjava.lang.OutOfMemoryErrorを題材としたTipsを紹介する。 帰宅直前に、突然電話が鳴り響く 業務を終えて帰宅しようとしたとある夜、突然電話が鳴る。相手は社内のプロジェクトのマネージャである。 「現在、テストを実施しているが、数分経つとOutOfMemoryErrorが発生してアプリケーションが落ちてしまう。再起動を掛けると、また順調に動くが、しばらく利用していると、同じようにOutOfMemoryErrorが発生する。メモリ不足のエラーなので、物理メモリを増やそうかと思っているが、物理メモリ増設の前に、アプリケーションという観点からメモリ不足を引き起こす問題がないか調査してほしい」 取りあえず、原因を探るために現場に急行した。 現場にてトラブルの詳細をヒア

    OutOfMemoryエラー発生!? GCがあるのに、なぜ?
  • 1