タグ

gcに関するkarahiyoのブックマーク (23)

  • JavaVMのメモリ管理に関するまとめ(Javaヒープ、GC、ダンプ等) - ぺーぺーSEのブログ

    ブログはJava8(特にMetaspace)に対応していない。 下記にJava8以降に対応した記事を記載する(予定)。 blog.pepese.com JavaVMのメモリ領域について JavaVMが管理するメモリ領域について 階層1 階層2 階層3 説明 Javaヒープ JavaVM上で起動するJavaプログラムのリソースを管理する領域。New領域とOld領域で構成される。 l" New領域 新規オブジェクトと閾値(-XX:MaxTenuringThreshold)未満のオブジェクトが配置される。(Young領域とも呼ばれる) l l" Eden領域 新規のオブジェクトが配置される。 l l" From領域 CopyGC(ScavengeGC、マイナーGC)が実行された際に、使用中のオブジェクトはここへコピーされる。(S0やS1とも呼ばれる) l lー To領域 CopyGC(Scav

    JavaVMのメモリ管理に関するまとめ(Javaヒープ、GC、ダンプ等) - ぺーぺーSEのブログ
  • だいありー

    IIJ mio の音声 SIM が届いたので、iPhone SE のセットアップ。 13時ごろ、MNP の手続きを追えたんだけど、22時現在、まだ手続きが終了していないっぽい...。 と思って softbank 携帯で電話したら、つながらなかった(圏外になった)ので、おわったっぽいが、なぜ IIJ mio のほうは圏外のままなのか。 IIJ mio のサイトからプロファイルをダウンロードして、無署名の警告をものともせずにインストールし、再起動したら docomo 回線を拾ってくれた。 Pony で Actor の GC がどうのってのがあって、ぴんとこなかったんだけど、やっとわかった。 Elixir(多分 Erlang も)の場合、こんな感じで、誰からも参照されない Process を沢山作って、永遠に待つような例が書ける。誰も参照していないので、その Process にメッセージが届くこ

  • FullGC

  • G1GCで実行されるGC

  • GCオプション備忘録 - Qiita

    チューニングのベースになるGCオプションの備忘録。 JDK6以上が対象で、デフォルトで設定されているものも明示的に指定。 動作設定 -server -d64 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+DisableExplicitGC -XX:+UseCompressedOops -XX:+OptimizeStringConcat -XX:-UseGCOverheadLimit 64bitのサーバモードで起動。 コンカレントGCを使用。 サーバモードなのでCMSIncrementalModeは指定しない方がいい。 G1GCでもいいが、世代別GCの方

    GCオプション備忘録 - Qiita
  • Java VMのガーベジコレクションの整理 - Qiita

    Java VMのGC Java VMには様々な種類のGC(ガーベジコレクション)があり、用語を整理しないと混乱します。 GCの種類を整理する前に、まずJava VMのGCは「世代別GC方式」を採っていることを意識しましょう。 Java 7で正式サポートが始まったG1 GCも、世代別GC方式がベースになっています。 「世代別GC方式」の詳細は、様々なWebサイトで紹介されているので、ここではポイントだけを記述します。 世代別GC方式とは Java VMはJavaヒープを、 「New領域(1個)」「Tenured領域(1個)」と「Permanent領域(1個)」に分割し、 さらに「New領域」を「Eden領域(1個)」と「Survivor領域(2個)」に分割します。 生成されたオブジェクトはまずEden領域に入り、最初の数回の「コピーGC」によって2個のSurvivor領域の間を行き来します。

    Java VMのガーベジコレクションの整理 - Qiita
  • Java 7 CMS GCの基本的な情報の整理 - nekop's blog

    バッチ処理などスループット重視のアプリケーションはデフォルトのパラレルGCで良いが、Java EEアプリケーションサーバなどレスポンスタイム重視のものやHadoopなどのクラスタ系ソフトウェアで死活監視に引っ掛る系などのstop the worldをなるべく避けたいいわゆるサーバ系ソフトウェアを運用する場合には、UseConcMarkSweepGCを付与して停止時間の短いCMS GCを使う。その場合にCMSのチューニングに踏み込もうとするとなんだか難しい記述がいっぱいで若干困るので、簡単なガイドをメモとして書いておく。 対象バージョンは以下。 $ java -version java version "1.7.0_51" OpenJDK Runtime Environment (fedora-2.4.5.1.fc20-x86_64 u51-b31) OpenJDK 64-Bit Serve

    Java 7 CMS GCの基本的な情報の整理 - nekop's blog
  • まじめにJVMチューニング: 第1回 まずは現状確認

    まじめにJVMチューニングに取り組む機会があったので、忘れないようにこの記事を書きました。 GCアルゴリズムやパラメータの説明はいろいろなサイトに掲載されていたのですが、 「どうやって取り組むか」「何を見れば良いか」は意外とまとまっていなかったので。 JavaScala製のアプリケーションはもちろんのこと、 Solr, ZooKeeper, Cassandra, Neo4J等jvm上で動くプロダクトを使う場合つねに 「JVMパラメータをどう設定するか」 という課題があります。 最近のミドルウェアでは、インストール時に最適なオプションを渡して javaを実行するようなシェルをつくるrpmを提供していたりしますが。 さて、今回私が取り組んだのはフルGC対策のためのチューニングです。 フルGCとは何かというと、 別名「Stop the World」と呼ばれ、全てのアプリケーション・スレッドを停

  • G1ガベージコレクタの威力を検証してみた - しんさんの出張所 はてなブログ編

    いよいよおまちかね!GF決勝大会レディーゴ(ry GFは世界の覇権をかけたガベージコレクト・ファイトの略だろJK …少しGガンダムに毒されてしまったようだ… ガベージコレクションの性能を検証したのをあげたのはJ2SE 5.0が出た直後あたりが最後だったっけ。もう5年近く前か。 http://shin.cside.com/diary/2004/10.htm#1 JavaSE 6 update14にてG1ガベージコレクタが入ったようなのでこれを試してみる。 ベンチに使うのはいつもどおりの自作STG。 GCのログも全部掲載してるので長文です。 インクリメンタルガベージコレクタ まず一番最適化してるインクリメンタルGCでの設定。なおインクリメンタルGCは5.0のときに実装がまるごとコンカレントGCにさしかえられているのでコンカレントGCを使っているという認識でOK。単に長いオプション名を暗記してい

    G1ガベージコレクタの威力を検証してみた - しんさんの出張所 はてなブログ編
  • G1GCのログの読み方 - unnamed

    この記事は Java Advent Calendar 2012 の3日目です! 前の日は @btnrouge さんの「HotSpotの変遷からみたJava SE 7の考察」でした。次の日は @making さんです! G1GCのログ G1GC (Garbage First Garbage Collection) が JDK 7u4 から正式に導入されました。この新しいGCの詳細は、幸いなことに @nari3 さんが日語でG1GCを執筆されており、これを読むことで殆どを把握することができます。やったね!ちなみに英語の論文等で読もうとすると、例えばこうなります。 学習の高速道路は整っていますが、更に理解の掘り下げやチューニングのために、実際に動かしながらログを読もうとすると、今までの形式とはすっかり変わってしまっているのでその読みにくさに絶望します。そのため、ここではログの出力がそれぞれど

    G1GCのログの読み方 - unnamed
  • G1GCのつかいどころメモ - nekop's blog

    以下の環境とテストでCMSとG1GCを比較してみた。かなり急ぎでやったので間違っている可能性が多少ある。 16 cores, 32GB mem -Xms24g -Xmx24g 8 instances Infinispan 6.0.3.Final DIST cache, put 4GB data (1KB entry * 2M, 2GB data with one backup copy, 2GB * 2 = 4GB) CMS: -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=30 G1GC: -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:InitiatingHeapOccupancyPercent=30 $ java -XX:+UseG1GC -XX:+PrintFlagsFinal

    G1GCのつかいどころメモ - nekop's blog
  • [メモ]CMS GCログの見方 - Akira's Tech Notes

    package test.example; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; @WebService @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) public class HelloWorld { @WebMethod(action = "sayHello") public String sayHello(@WebParam(name = "name" ) String

  • GCメモリ初心者の新卒がScalaでGCメモリを勉強してみた | Scala Tech Blog

    この記事はCyberAgent エンジニア Advent Calendar 2015の14日目の記事です。 昨日は13卒の鈴木さんのブログでした、明日は同期のchoheyさんです。 はじめに こんにちは、サイバーエージェントアドテクスタジオ15新卒のフィ(@dxhuy)と申します。 アドテク新卒の中で「YYY初心者の新卒がXXXでYYYを勉強してみた」というタイトルが流行っていますので、パクらせていただきました。 ネットワーク初心者の新卒がDockerでネットワークの勉強をしてみた Scala初心者の新卒が頑張ってLispを作ってみた 現在RightSegmentという子会社でData Management Platform (DMP)を作っています。データの会社なのでHadoopのバッチの開発とか、フロントサーバでJavaの開発などをしています。 GCメモリについて 会社に入る前にはスク

    GCメモリ初心者の新卒がScalaでGCメモリを勉強してみた | Scala Tech Blog
  • Javaとキャッシュの付き合い方で考えてた - 日々量産

    キャッシュっていろんな意味があってアレだけど、ここでは「苦労して得た情報なんだから使いまわしたい」時に使うキャッシュということで。 仕事でキャッシュ使ったほうがいいよなぁ、とぼんやり思ったので考えまとめるためにメモっとく。 アルゴリズムの勉強しかけたけど、LRUとLFUぐらいしかわからんし、効率よく実装するにゃ頭が足らんかった。 なぜキャッシュを使いたいと思ったか 設定ファイル読み込んだり、独自の定義ファイル(xmlとか独自フォーマットなファイルとか)をいくつも読む必要があった。 これらのファイルを1リクエスト中に1〜5回ぐらいファイルを読むようで、応答速度も「現在は」気になってない。 でも、ファイルのアクセスは時間がかかる!遅い!!クソザコ!!!という固定概念を持ってるので、キャッシュしたほうが早くなるよなーと思った。 キャッシュのメリット 実行時間が短縮できる(応答速度が上がる) キャ

    Javaとキャッシュの付き合い方で考えてた - 日々量産
  • UseCompressedOops オプションのデフォルト値 - Quitada ブログ HAX

    Java SE 6 な JVM の Oracle 実装(いわゆる元 Sun の Hotspot VM)Update 14 のタイミングで、64 ビット版で UseCompressedOops というオプションが使えるようになりました。オプションの技術的概要については、下記サイトとか参照してください。 UseCompressedOops - Hotspot JVMの圧縮OOP ものすごく単純に言ったバージョンは、Update 14 のリリースノート参照。 http://java.sun.com/javase/ja/6/webnotes/6u14.html -XX:+UseCompressedOops オプションを使用すると、Java オブジェクトヒープのサイズが 32 ギガバイト未満の場合に、64 ビット JRE のパフォーマンスを向上させることができます。この場合、HotSpot はオブ

    UseCompressedOops オプションのデフォルト値 - Quitada ブログ HAX
  • Norikra等JavaアプリケーションのGCをチューニングしたい - Qiita

    Javaアプリケーションを運用していると必ず突き当たるのがGCの問題である。JVMの上で生きている限りこの問題を避けて通ることはできない(し、この問題に手をつけたら終わりだとも聞いたことがある)。NorikraはJRubyで記述されているJavaアプリケーションであり、用途からして大量のオブジェクトを作って破棄していることが容易に想像できるので、GCのチューニングは重要であることが考えられる。 GCのログをとりたい チューニングしたいのであれば、まずはともあれロギングである。ログなくしてチューニングすることなどできない。ということでまずはGCのログをとる。 $ norikra start -Xmx4g -Xms4g -Xloggc:/var/log/norikra/gc.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails

    Norikra等JavaアプリケーションのGCをチューニングしたい - Qiita
  • JVMのチューニング - ITエンジニアとして生きる

    前回、JVMとGCのしくみ - ITエンジニアとして生きるでJVMとGCのしくみについて書いた。 今回はその続きということでJVMのチューニングについて書きたいと思う。 JVMチューニングって -Xms ・・・ ヒープ全体(New領域+Old領域)の初期値 -Xmx ・・・ ヒープ全体(New領域+Old領域)の最大値 くらいしか話題に上がらないし意識しないことが多い(気がする)。 でもホントはこれだけではダメで、前回のようにPermanent領域、New領域、Old領域を意識したチューニングが必要になる。 VMチューニングを考えるその前に・・・チューニングの話をする前にまずVMの起動モードについて話したいと思う。 VMには大きく以下2つの起動モードがあり、それぞれ以下のような特徴を持つ。 ◆クライアントVMモード 起動時間を短縮し、メモリサイズを縮小するように調整されている。 VM起動時

    JVMのチューニング - ITエンジニアとして生きる
  • Boehm GC を使う | Netsphere Laboratories

    2005.2.27新規作成。(2001.7.14, 2001.7.15 の日記に加筆。) (2020.1) 追記。 C/C++には、言語仕様としてのガベージコレクションの機能はない。動的に確保したメモリは、自分で、ただ一度だけ解放するようにプログラムを組まなければならない。解放を忘れるとメモリリークが発生し、解放しすぎるとプログラムがクラッシュすることもある。 ガベージコレクタを使うと、メモリを好きなだけ確保するだけでよく、解放は自動的にしてくれる。巨大なメモリを明示的に解放するような場合のほかは、メモリを解放するコードを書く必要はない。 The Boehm-Demers-Weiser conservative garbage collector (Boehm GC) は、C言語用のメジャーなガベージコレクタ。さまざまなソフトウェアがこのライブラリを使っている。しかし、Fedora Cor

  • GitHub - tmm1/gctools: profiler/logger/oobgc for rgengc in ruby 2.1

    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 - tmm1/gctools: profiler/logger/oobgc for rgengc in ruby 2.1
  • Goのガーベジコレクタを視覚化するツール | POSTD

    (環境変数GODEBUGは、 ランタイム パッケージで提供されています) この環境変数を指定してプログラムを起動すると、標準出力に以下の追加出力が出力されます(少し簡略化されています)。 % env GODEBUG=gctrace=1 godoc -http=:6060 ... gc76(1): 2+1+1390+1 us, 1 -> 3 MB, 16397 (1015746-999349) objects, 1436/1/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields gc77(1): 2+0+1582+1 us, 2 -> 4 MB, 14623 (1016248-1001625) objects, 1436/0/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields scvg0: inuse:

    Goのガーベジコレクタを視覚化するツール | POSTD