タグ

GCに関するclavierのブックマーク (67)

  • Dumpster diving the Go garbage collector

    Principal Engineer @ New Relic, Founding Engineer @ Pixie Labs Go is a garbage collected language. This makes writing Go simpler, because you can spend less time worrying about managing the lifetime of allocated objects. Memory management is definitely easier in Go than it is in, say, C++. But it’s also not an area we as Go developers can totally ignore, either. Understanding how Go allocates and

    Dumpster diving the Go garbage collector
  • OpenJDKで使えるパフォーマンス分析と障害診断ツール - Qiita

    Oracle JDKを含むOpenJDKディストリビューション(以下、JavaまたはJDK)にはJFRを筆頭にさまざまな分析ツール/仕組みがあります。 JDK7からJDK12にかけてトレンドが変わった部分もあるので、少しサマったメモを書きます。 メトリクス取得のための仕組み Javaにはパフォーマンスメトリクスを取得するための方法がいくつかあります。代表的なのは下記の3つでしょう。 JMX ログ JPLIS(javaagent) JMX Java Management Extensions(JMX)はJavaのリソース監視および管理のためのプロトコルです。簡単にいえばJava版のSNMPです。 JSR-174としてJava 1.5より取り込まれています。 Managed Bean(MBean)を利用してCPUやメモリの情報を取得したり、特定のイベント(例えば強制GC)とかを実行することも可

    OpenJDKで使えるパフォーマンス分析と障害診断ツール - Qiita
  • JVM入門 -メモリ管理編-

    関ジャバ'19 7月度 - connpass https://kanjava.connpass.com/event/134133/ 登壇資料

    JVM入門 -メモリ管理編-
  • Apache Kafkaで発生した原因不明のパフォーマンス低下と、それを解決するためにやったこと

    2019年7月17日、kafka.apache.jpが主催するイベント「Apache Kafka Meetup Japan #7」がLINE株式会社にて開催されました。分散ストリーミングプラットフォーム「Apache Kafka」に関するナレッジや最新情報を共有するイベント。今回は4人のエンジニアが、自身や自社における知見を語りました。プレゼンテーション「Kafka Broker performance degradation by mysterious JVM pause」に登壇したのは、LINE株式会社の河村勇人氏。ある日Kafkaに起こった突然のパフォーマンス低下とその原因について、解決までの軌跡を語りました。講演資料はこちら Apache Kafkaのパフォーマンス低下とその原因 河村勇人氏:よろしくお願いします。最初に自己紹介をします。河村勇人といいます。 LINEで全社向けの

    Apache Kafkaで発生した原因不明のパフォーマンス低下と、それを解決するためにやったこと
  • Master Guide to Java Memory Management - DZone

    You might think that if you are programming in Java, what do you need to know about how memory works? Java has automatic memory management, a nice and quiet garbage collector that works in the background to clean up the unused objects and free up some memory. Therefore, you as a Java programmer do not need to bother yourself with problems like destroying objects, as they are not used anymore. Howe

    Master Guide to Java Memory Management - DZone
  • ざっくりわかった気になるモダンGC入門 - Cybozu Inside Out | サイボウズエンジニアのブログ

    どうも!@yokotaso です! 2018/05/26のJJUG CCC 2018で「ざっくりわかった気になるモダンGC入門」というタイトルで登壇させていただきました。 現在開発中の新しいGCアルゴリズムをざっくり理解することをテーマに発表しました。 発表練習用に作ったカンペの内容を公開します。ブックマークコメントでもツイートでも感想を書いていただけると喜びます! 発表資料は、speakerdeck にあります。はじまり〜はじまり〜 はじめに 今日はざっくりわかった気になるモダンGC入門というお話をさせていただきます。 現在開発中のGCアルゴリズムの全体像を理解してもらうことを目的としたセッションです。よろしくおねがいします。 さて今日のアジェンダですが、まず簡単にこれまでのGCを復習した後に新しいGCが必要になってきた背景について少し話します。 次にShenandoahGC、ZGC、E

    ざっくりわかった気になるモダンGC入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 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を知らない人のためのmruby gc - Qiita

    gc(garbage collection)とは 確保したメモリを自動的に解放してくれる仕組み メモリを確保する際は、アプリケーションが要求した量より多い量が確保される。その多い分は、要求したメモリの管理のためで、管理領域があることで要求したメモリが辿れるようになっている。アプリケーションが要求した領域を解放する際は、管理領域を使って、順次メモリを辿っていき、合致する領域を探すといった事を行う。 mark & sweep 古典的なgcの一つにmark & sweepがある mark & sweepでは、使っていないメモリを探して解放する。 例えば、rootと呼ばれるglobal変数があって、rootからたどることが出来る(参照がある)場合は、まだ使っていると判断出来る。反対に、どこからも参照されていない場合、そのメモリはもう使っていないと判断できる。 このように、どこからも参照されていない

    gcを知らない人のためのmruby gc - Qiita
  • JVMのGCイベントのログをSlf4j経由でJSON形式でログとして出す | DevelopersIO

    こんにちは。生魚美味しいですよね。今日久しぶりにべましたが、やっぱり美味しい。 どうも齋藤です。 今回はGCイベントのログをSlf4j経由で出力してみたいと思います。 また、JSON形式でログを出力してみましょう。 今回作ったアプリケーションは以下のリポジトリにコードを置いております。 gclogger はじめに JVMのGCログは来オラクルのサイトの記述を参考にすると -verbose:gc もしくは -Xloggc:filename を指定することで、標準出力もしくはファイル出力することができるようです。 しかし、アプリケーションのログ等ではSlf4jなどを使われているのではないでしょうか。 この記事では、JVMのGCイベントのログをSlf4j経由で出力してみます。 また、この記事で書いたログで出力される内容は、JVM体から出力されるGCログとは少し違う内容になります。 今回は、

    JVMのGCイベントのログをSlf4j経由でJSON形式でログとして出す | DevelopersIO
  • Garbage collection in V8, an illustrated guide

    This guide is unlike others I’ve done so far, and has a bit of a narrative to go along with the sketches. I thought the entire concept of garbage collection and how it gets dealt with in javascript, or more specifically in engines that run javascript, deserves a bit more of an explanation. I would also like to mention that this guide is meant to be beginner friendly, and does not cover every aspec

    Garbage collection in V8, an illustrated guide
  • Elasticsearchの運用は大変(冷凍庫のガリガリ君食ったのは誰だ編) - Qiita

    GYAOの窓際エンジニア 玉利です。 休日返上で仕事をするようになると、家計が大変です。 まずは、弁当をつくらなくなります。仕入れも仕込みもできないので仕方ありません。今は夏だから中毒こわいし。。。とか適当な理由をつけますが、単に家に帰ってくると抜け殻でなにもできないからです。1日800円x25くらいになるので月2万円近くアップ。 そして、ヨメの面倒を見るのがおざなりになるため、PKO(Peace Keeping Operation)活動として、なぜかヨメの軍事費(主に服)が増大します。これで10万円の出費。 自分も、細々したものを通販でポチってしまうので、今月マジでやばい。定時で効率よく仕事をするように、残業代の規定は雀の涙になるように設定されているので、普段はいいけれど炎上案件に関わると無事死ねます。 そして、我々の作ったESクラスタも、同様にメモリという家計をどうやってバランスさせ

    Elasticsearchの運用は大変(冷凍庫のガリガリ君食ったのは誰だ編) - Qiita
  • Java でつくる�低レイテンシ実装の技巧�

    9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O... 9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう! (Open Source Conference 2021 Online Hiroshima 発表資料) 2021年9月18日 株式会社NTTデータ 技術開発部 先進コンピューティング技術センタ 阪田 浩一

    Java でつくる�低レイテンシ実装の技巧�
  • GCの話 | κeenのHappy Hacκing Blog

    #関数型なんたら でGCの話を聴いて、SML#のGCの論文を読んで色々感じたのでエントリー。 Snapshot GC まず、湯浅先生のSnapshot GC (解説)。並列、並行、インクリメンタルにGCが出来る。恐らく一番性能が出るとのこと。解説ではmark & sweepだけど私が聴いたのはCopyingだった。 勿論並行にするにはライトバリアが必要なんだけどその辺にまつわる話。並行じゃなくても世代別GCでもライトバリアが必要になるからその辺も頭に入れて聴いてほしい。Copyingはアロケーションが鬼のように速いのが特徴。mallocの感覚でメモリ確保が重いとか思ってると感覚が狂う。なので新たなオブジェクトを作るコストは非常に低い。そこにオブジェクトの変更にはライトバリアが付くとなると、大きくないオブジェクトの場合 オブジェクトを変更するより新たに作った方がコストが低くなる 。一応言って

    GCの話 | κeenのHappy Hacκing Blog
  • 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

  • A tour of V8: Garbage Collection

    Published on 2013-09-23 Edited on 2014-01-26 Tagged: garbage-collection javascript v8 virtual-machines View All Posts This article is part of the series "A tour of V8". A tour of V8: full compiler A tour of V8: object representation A tour of V8: Crankshaft, the optimizing compiler A tour of V8: Garbage Collection This article has been translated into Chinese. Thanks to liuyanghejerry! In the last

    A tour of V8: Garbage Collection
  • JavaVMのメモリチューニング

    システムの処理性能を高めるには,基盤となるJavaVM自体のチューニングを適切に実施する必要があります。日立のJavaVMでは,2種類のメモリ空間を管理しています。 この章では,ガーベージコレクションと日立のJavaVMでのメモリ管理,およびJavaヒープとExplicitヒープのチューニングについて説明します。 <この章の構成> 7.1 ガーベージコレクションとJavaVMのメモリ管理の概要 7.2 フルガーベージコレクション発生を抑止するためのチューニングの概要 7.3 Javaヒープのチューニング 7.4 Javaヒープ内のTenured領域のメモリサイズの見積もり 7.5 Javaヒープ内のNew領域のメモリサイズの見積もり 7.6 Javaヒープ内に一定期間存在するオブジェクトの扱いの検討 7.7 Javaヒープの最大サイズ/初期サイズの決定 7.8 Javaヒープ内のPerma

  • G1 GC おさらいと #jjug_ccc で発表した話 - unnamed

    この記事は Java Advent Calendar 2015 の一日目の記事です。二年連続でトップバッターだ! 先日の JJUG CCC 2015 Fall で G1 GC について話してきました。 去年の CMS GC と同じく結構遅めの時間帯&裏番組に伝説の灰色ページ管理人・ひしだま伝道師が発表するなどの豪華な時間帯にも関わらず、165人規模の部屋がいっぱいに埋まるぐらいの盛況でした。聴講頂いた皆様ありがとうございました! スライドは以下に公開しました。G1 GC の挙動から GC ログの読み方、どういうケースが厄介なのかを紹介しているので是非ご覧ください! Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6 from Yuji Kubota アフターフォロー、またはちょっとした補足 極力、後から参照可能なように資料

    G1 GC おさらいと #jjug_ccc で発表した話 - unnamed
  • 「Javaパフォーマンス」はいい本だった - 愛と勇気と缶ビール

    Javaパフォーマンス 作者: Scott Oaks,アクロクエストテクノロジー株式会社,寺田佳央,牧野聡出版社/メーカー: オライリージャパン発売日: 2015/04/11メディア: 大型この商品を含むブログ (11件) を見る とても馬鹿っぽいタイトルになってしまったが、気にしないのである。 だいたいの内容としては、 パフォーマンス・チューニングに関する一般論 Java付属のモニタリングツール(jstatとかあれとかこれとか) JITコンパイル周りについて GCについて 等々がいい感じに、過不足なく書いてある。 既にJava10年選手で、GCのチューニングもしたことあるし、JVMとは戦友みたいなものだ…みたいな人にはおそらく必要ないだろうが、JVM周りのあれやらこれやらを知らない人(つまり僕のような)がとりあえずJava始めてみたときに、頭の中に見取り図を書くためにはこのを読むのが

    「Javaパフォーマンス」はいい本だった - 愛と勇気と缶ビール
  • クックパッドの本番環境で使われている Ruby のバージョンが 2.2 になりました - クックパッド開発者ブログ

    技術部の鈴木 (@eagletmt) です。 先日、クックパッドで使われている Ruby のバージョンを 2.0.0 から 2.2 にアップグレードしました。 アップグレードは主に @sorah と私で進めました。 今回はアップグレードまでの過程やアップグレード当日の流れ、そして今のところ見られているアップグレードによる効果などについて紹介します。 アップグレードまでの準備 テストを通す Ruby 2.1 がリリースされたときから 2.1 にアップグレードできないか検証環境でテストを回していました。 しかし、当時はクックパッドの全テストを実行すると必ず途中で Ruby がクラッシュする現象に悩まされていました。 Ruby の GC のバグ、拡張ライブラリのバグを疑いながら色々やってみたものの結局解決できず、Ruby 2.2 がリリースされてからもこの状況は改善されませんでした。 しかしある

    クックパッドの本番環境で使われている Ruby のバージョンが 2.2 になりました - クックパッド開発者ブログ
  • Swiftから透けて見えるAppleのコンパイラ技術

    連載は、はてなエンジニアが、はてなのサービスを支えている技術や日頃注目している技術について解説するものです。Appleは毎年WWDCでいくつもの新規技術を発表していますが、筆者はその中でもObjective-Cの進化に特に注目していました。新たに追加されるAPIやサービスの前では、Objective-Cの進化はあまり注目されてきませんでしたが、実はここ数年の間も進化し続けていました。これにはAppleがコンパイラ技術にコミットしてきたことが大きく影響しています。今回は、Appleのコンパイラ関連技術を振り返り、Swiftにどう繋がるのかを解説します。 はじめに SwiftAppleによって開発された全く新しいプログラミング言語です。WWDC 2014で稲のように現れたこのプログラミング言語は、またたく間に世界中のモバイルアプリ開発者の注目を集めました。 Swiftは衝撃的な登場だった

    Swiftから透けて見えるAppleのコンパイラ技術
    clavier
    clavier 2015/06/29
    Swiftから透けて見えるAppleのコンパイラ技術 (1/2):CodeZine