タグ

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

  • GolangのGCを追う

    Go1.5とGo1.6でGoのGCのレイテンシが大きく改善された.この変更について「ちゃんと」理解するため,アルゴリズムレベルでGoのGCについて追ってみた. まずGoのGCの現状をパフォーマンス(レイテンシ)の観点からまとめる.次に具体的なアルゴリズムについて,そして最後に実際の現場でのチューニングはどうすれば良いのかについて解説する. GoのGCの今 最初にGoのGCの最近の流れ(2016年5月まで)をまとめる. Go1.4までは単純なStop The World(STW)GCが実装されていたがGo1.5からは新たなGCアルゴリズムが導入された.導入の際に設定された数値目標は大きなヒープサイズにおいてもレイテンシを10ms以下に抑えることであった.Go1.5で新たなアルゴリムが実装されGo1.6で最適化が行われた. 以下は公開されているベンチマーク.まずはGo1.5を見る. Gophe

  • Golang UK Conference 2015 - Dean Elbaz - Understanding Memory Allocation in Go

  • Go GC: Prioritizing low latency and simplicity - The Go Programming Language

    Richard Hudson 31 August 2015 The Setup Go is building a garbage collector (GC) not only for 2015 but for 2025 and beyond: A GC that supports today’s software development and scales along with new software and hardware throughout the next decade. Such a future has no place for stop-the-world GC pauses, which have been an impediment to broader uses of safe and secure languages such as Go. Go 1.5, t

    Go GC: Prioritizing low latency and simplicity - The Go Programming Language
  • RubyとPythonにおけるガベージコレクションの視覚化 | POSTD

    稿は、ブダペストで開かれたイベント「 RuPy 」で、Pat Shaughnessyが披露したプレゼンの内容をまとめたものです。 プレゼンの映像はここ から視聴できます。 稿は当初、 同氏の個人ブログ に投稿されましたが、同氏の了承を得て、Codeshipに再掲載します。 このイベントは「RubyPython」に関するカンファレンスなので、RubyPythonでは、ガベージコレクション(以下「GC」)の動作がどう違うのかを比較すると面白いだろうと私は思いました。 ただしその題に入る前に、そもそもなぜ、GCを取り上げるのかについてお話しします。正直言って、すごく魅力的な、わくわくするテーマではないですよね? 皆さんの中でGCと聞いて、心がときめいた方はいらっしゃいますか? [実はこのカンファレンス出席者の中で、ここで手を挙げた人は数名いました!] Rubyコミュニティで最近、Rub

    RubyとPythonにおけるガベージコレクションの視覚化 | POSTD
    koemu
    koemu 2015/08/06
    性格出て面白い
  • (翻訳) Ruby 2.2 のシンボル GC - FIVETEESIXONE

    Ruby 2.2 の新機能にシンボル GC というものがあります。 正直、「え、シンボルって GC されないから速いんじゃないの?なのにシンボル GC で Rails が速くなるとか話聞くけど、いったいどういうことなの?」という感じでサッパリ理解できてなかったのですが、その辺りの疑問に対してまとめられている記事がありました。 Symbol GC in Ruby 2.2 とても分かりやすく素晴らしい記事だと感じたので、許可をもらって以下に日語訳を公開します。 Symbol GC in Ruby 2.2 シンボル GC ってなに?それって気にしなくちゃいけないことなの? リリースされたばかりの Ruby 2.2 の大きな新機能として「インクリメンタル GC」が挙げられますが、もう1つの注目すべき新機能が、この「シンボル GC」 です。 もしあなたがこれまで Ruby の世界で過ごしてきたのな

    (翻訳) Ruby 2.2 のシンボル GC - FIVETEESIXONE
    koemu
    koemu 2015/01/22
  • CMS GC おさらい - unnamed

    この記事は Java Advent Calendar 2014 の一日目の記事です。 先日の JJUG CCC 2014 Fall で CMS GC について話してきました。 結構遅めの時間帯にも関わらず、200人規模の部屋がいっぱいに埋まるぐらいの盛況振りで、みなさんGCにお困りなんだなあと実感しました。スライドは以下に公開しています。CMS GC の挙動から GC ログの読み方、どういうケースが厄介なのかを紹介しているので是非ご覧ください! Concurrent Mark-Sweep Garbage Collection #jjug_ccc from Yuji Kubota 嬉しいことにセッションの反応は良かったのですが、「遅めの時間帯で頭も疲れてるとガチ話辛い」という声もあったので、今回は CMS GC について比較的重要な点についてだけ簡単におさらいしたいと思います。 オプションに

    CMS GC おさらい - unnamed
    koemu
    koemu 2015/01/06
  • Oracle Blogs

    koemu
    koemu 2015/01/06
    Initial markとremark phaseでstop-the-worldが起こる。
  • Java (JVM) Memory Model - Memory Management in Java | DigitalOcean

    While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial. Understanding JVM Memory Model, Java Memory Management are very important if you want to understand the working of Java Garbage Collection. Today we will look into

    Java (JVM) Memory Model - Memory Management in Java | DigitalOcean
  • 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
  • GCViewer

    GCViewer (download) is a free open source tool to visualize data produced by the Java VM options -verbose:gc and -Xloggc:<file>. It also calculates garbage collection related performance metrics (throughput, accumulated pauses, longest pause, etc.). This can be very useful when tuning the garbage collection of a particular application by changing generation sizes or setting the initial heap size.

  • 1