タグ

perfとmemに関するkiyo_hikoのブックマーク (14)

  • ページが見つかりません | 日本HP

    ページが見つかりません。 目的のページは、移動または削除によって無効になっている可能性があります。申し訳ありませんが、検索またはリンク先よりお探しください。

    kiyo_hiko
    kiyo_hiko 2013/08/14
    Lisp、SmalltalkやJavaの古い日のGCはメモリーが一枚岩でマーク&スイープで大規模なガーベジコレクションを行うので停止時間がながい HotSpot VMでは世代別GCを行う マイナーGCは数msですむらしい
  • 第8回 イレギュラーなヒープの動作を理解する | gihyo.jp

    Tenured領域を早く使ってしまうパターン 前回ご紹介したように、HotSpotのヒープでは、アプリケーションがオブジェクトを作成するとまずはじめにEden領域が割り当てられ、マイナーGCによってSuvivor領域、Tenured領域へと移動していく流れが一般的でした。 しかし、このパターンではないイレギュラーなパターンがいくつか存在します。 その1つが、「⁠オブジェクトが一般的なパターンに比べ、早くTenured領域に移動してしまう」というものです。 図1 Tenured領域を早く使ってしまう例 Tenured領域はメジャーGCの対象であり、メジャーGCはNew領域を対象とするマイナーGCに比べ、はるかに停止時間が長くなります。そのため、このようなパターンが頻繁に起こる場合は、メジャーGCの多発によってアプリケーションの停止時間が増加します。 図2 Tenured領域を早く使ってしまう

    第8回 イレギュラーなヒープの動作を理解する | gihyo.jp
    kiyo_hiko
    kiyo_hiko 2013/08/14
    Edenに入らないオブジェクトができた場合、それはいきなりTenuredに入る (SURVIVORは常にEdenより小さい、Edenに入らないからってOOMEで落とすよりは待ってでも実行続ける発想らしい) 短中期のオブジェクトが多い場合newを増やす
  • JavaScriptからメモリ情報を取得する方法

    JavaScriptにおいてメモリ管理は基的にエンジン任せなのであまり意識することは無いかもしれませんが、メモリリークの調査やパフォーマンスの実験のためにメモリ情報をJavaScriptから扱いたいときがあると思います。 メモリリーク調査は専用のソフトウェアなどがあるので、 JavaScript Memory Leak Detector (v2) – GPDE Team Blog – Site Home – MSDN Blogs IE Overview – JavaScript Memory Validator Firefox Debugging memory leaks – MDC Doc Center そちらを使うのでもいいかもしれませんが、new Dateを使った実行時間の記録みたいにJavaScript内からメモリ情報を取得して計測できるとおもしろいと思うので、ブラウザ毎にやる方

    JavaScriptからメモリ情報を取得する方法
  • ガーベジ・コレクション:GC ( Garbage Collection ) についての簡単な説明と調査方法

    Java の GC について簡単に説明いたします。 GC はヒープやヒープサイズと密接な関連があります。以下のページも合わせて参照ください。 「Java のヒープサイズ」についての簡単な説明 Java プログラムが動作するとオブジェクトはメモリ上にロードされます。 大きなオブジェクトを使用したり、また、使用するオブジェクトの数が多ければ、その分メモリの使用領域は増加します。 そのまま、新しいオブジェクトをロードし続けると、Java が使用できるメモリ領域がメモリが一杯になります。 * 「 Java が使用できるメモリ領域 」、これをヒープ領域と言います。( ヒープ領域以外にも Permanent 領域が存在します。) メモリが一杯になると新しいオブジェクトをロードできず、プログラムを実行することができなくなります。 このような状態を回避するための仕組みが ガーベジ・コレクショ

  • http://atdot.net/~ko1/activities/rubymem.pdf

    kiyo_hiko
    kiyo_hiko 2011/12/16
    そのうち読む。
  • 「Java のヒープサイズ」についての簡単な説明

    Java のヒープ領域及び 非ヒープ領域、メモリ管理について簡単に説明いたします。 ヒープやヒープサイズはガーベジ・コレクション:GC ( Garbage Collection ) と密接な関連があります。以下のページも合わせて参照ください。 ガーベジ・コレクション:GC ( Garbage Collection ) についての簡単な説明と調査方法 Java のオブジェクトは、大きく分けて、New、Old 、Permanent というメモリ領域で管理されます。 新しいオブジェクトを格納するのが New 領域と呼ばれ、古いオブジェクトを格納するのが Old 領域と呼ばれます。 Permanent 領域にはクラスやメソッドなどの情報が格納されます。 ( これらは Permanent Generation, Tenured Generation, Young Generation とも

    kiyo_hiko
    kiyo_hiko 2011/11/21
    HeapやPermanentを考慮したJVMのオプションの決め方など
  • Webシステムのボトルネック回避(3)

    図7●スレッド数と接続数がパラメータ・チューニングの中心<BR>Webシステムを構成する3層それぞれのクライアント・サーバー接続のコネクション数をパラメータで制御することで,個々のWebアプリケーションに適したチューニングを施す。Webサーバーはクライアントの同時接続数,APサーバーはJavaVMの数とスレッド数,あらかじめ張っておいて使いまわすDBアクセス用コネクションの数,DBサーバーはDBアクセスを受け付ける同時接続数を適切な数にする。フロントエンドのWebサーバーからバックエンドのDBサーバーに向かうにつれて同時に接続可能なスレッドを減らすケースが多い 図8●JavaVMのヒープ領域のサイズでガベージ・コレクション(GC)の頻度と時間を制御する<BR>JavaVMは,Eden,Survivor,Oldの3つの世代でオブジェクトを世代管理することで,ガベージ・コレクション(GC)にか

    Webシステムのボトルネック回避(3)
    kiyo_hiko
    kiyo_hiko 2011/10/31
    「GCの効率を上げるためには,アプリケーションの開発時にも,オブジェクトのサイズを小さく収める工夫が必要」…なるほど
  • @IT:Javaパフォーマンスチューニング 第3回

    記事は、HP-UX Developer Edgeに掲載された記事を株式会社アットマーク・アイティおよび記事の筆者が独自の判断のもとに加筆・修正したものです。 今回は、Javaにおけるヒープ・メモリ管理の詳細を説明します。JVMのヒープ・メモリの中で、新しいオブジェクトと古いオブジェクトがどのように配置されるかを理解することで、ヒープ・メモリが有効に利用されているか否かを判断することができます。また、JVMが出力するガベージ・コレクションのログを解析し、オプションの指定によってヒープ・メモリのサイズを適切にチューニングする方法を紹介します。 Java ヒープ・メモリの構造 Javaにおけるガベージ・コレクションのメカニズムを理解するには、まずヒープ・メモリの構造を知っておく必要があります。 図1は、JVM におけるヒープ・メモリの構造を示したものです。この図が示すように、ヒープ・メモリの

    @IT:Javaパフォーマンスチューニング 第3回
    kiyo_hiko
    kiyo_hiko 2011/10/31
    ヒープはnew/oldに分かれて、newはeden+survivor(from/to)。newをキレイにしてedenからfrom or toに追い出すのがスカベンジGCで、from/toは交代で割とnewなモノを入れるのに使って、カウントがthresholdを超えたらold入り。フルGCはoldも対象か
  • 世代別GC - はてはてな

    先日ちょいと書いたJAVAWORLDのお話の続き。当に読みたかったのはこの世代別GCについて。以下やはり殴り書きメモ。 Q.オブジェクトは使い回したほうがGCの対象にならないので速いってホント? A.ウソ(一概にそうとは言えない) 世代別コピー式GC(っちゅうのがある):ヒープ領域(オブジェクトの管理メモリ)が新世代と旧世代に分かれている。 〜新世代領域〜 生存期間の短いオブジェクトを管理。さらにそれぞれエデンとサバイバと呼ばれる領域に分かれる。 エデン:新しいオブジェクトはまずここに割り当てられる。エデン領域がいっぱいになるとスカベンジGCが実行される。 サバイバ:さらに2つの領域に分かれる(便宜上S0,S1と呼ぶことにする)。 〜旧世代領域〜 生存期間の長いオブジェクトを管理。スカベンジGC回数のしきい値を超えたオブジェクトが移される(殿堂入り)する ☆スカベンジGC☆ ・初回スカベ

    世代別GC - はてはてな
    kiyo_hiko
    kiyo_hiko 2011/10/31
    頭ごなしにオブジェクトの使い回しというのは、GC対策としては意味が薄いのか
  • 「ガベージコレクションの対象となるタイミングについて」(1) Java Solution - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

    kiyo_hiko
    kiyo_hiko 2011/09/16
    intern()でプールされた文字列はいつガーベジ・コレクションの対象となるのか。あとで読む
  • Javaの道>掲示板(ByteBufferの処理速度について)

    kiyo_hiko
    kiyo_hiko 2011/08/30
    一応参考に。ByteBufferでダイレクトに確保したメモリーが、必ずしもヒープに確保するよりも速いとは限らないということらしい?詳しくはあとで。ふ菓子は流石に入門書読め、というレベル。
  • Hotspot VMの基本構造を理解する

    J2EEがミッションクリティカルな分野に適用されるようになり、Javaのパフォーマンスチューニングの重要性はさらに高まっています。パフォーマンスチューニングにはさまざまなパラメータがありますが、中でもJava VMに関連するチューニングの効果は大きいといわれています。稿は、Java VMに関連するチューニング手法を学ぶための前提知識を提供することを目的にしています(編集部)。 Java VMに関連するチューニングを行い、J2EEアプリケーションのパフォーマンスを上げるためには、Java VMについて詳しく知る必要があります。稿は2回に渡ってJava VMの基構造と動作原理を詳細に解説しますが、内容を理解するためにはプログラムがコンピュータ上で動作する基原理とJava VMの基用語を知っている必要があります。Java VMの基用語に関しては、「実行スピードに挑戦するJavaアーキ

    Hotspot VMの基本構造を理解する
  • Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か

    GC周りでトラブルシューティングした際の経験や、Web等で調べたことをまとめてみる。 前提 ・JVMは、Sun Javaを想定。(他は使ったことないです。。。) ・Sun Java 1.5-1.6を想定。 目標 マイナーGC、Full GCそれぞれが頻発することなく、かつそれぞれの実行時間を1秒未満に抑えること。 マイナーGCは1秒未満どころではなく、もっと短くなるべき。どれくらいが理想かは?(0.1秒未満ぐらいを目指したい?) 連続した負荷状態(想定されるピークアクセス)でもOutOfMemoryErrorが発生しないこと。 理想的な状態は、上記に加えて、Full GCの発生が低頻度であること。 具体的には、できるだけマイナーGCで短命オブジェクト(1回使ったらもう使わないようなオブジェクト。逆にセッションオブジェクト等は長命オブジェクトとなる)を破棄させて、短命オブジェクトが、Tenu

    Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か
  • JavaVMのメモリ管理をマスターする

    Webシステムの安定動作には、メモリ使用量の適切な見積もりが不可欠。だがJavaVMでメモリがどのように管理されるかを理解しているだろうか? メモリに関する問題が発生すると、知識や技術資料の不足によって問題が長期化しがち。JavaVMでどのようにメモリが管理されているかを理解し、正確なメモリサイジングやメモリ関係のトラブルの早期解決へとつなげよう。 JavaVMのメモリ構造を理解しよう まず、JavaVMがどのようにメモリを使っているかを理解しておこう。JavaVMがプログラムを実行すると、Javaのプロセスによってメモリが使用される。Javaのプロセスでは、Javaヒープ、Permヒープ、Cヒープ、およびスレッドスタックという4つのメモリ領域を使用する。 Javaヒープはアプリケーションプログラムの各種オブジェクトを格納する領域であり、Classのnewで確保される。JavaヒープはNe

    JavaVMのメモリ管理をマスターする
    kiyo_hiko
    kiyo_hiko 2010/08/27
    HotSpotVMではJavaヒープ(-Xmx)(Eden/Survivor/Old)の外側にPermヒープ(XX:MaxPermSize)、Cヒープ、スレッドスタックがある Permヒープが払底してもFullGCが発生し得る
  • 1