タグ

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

  • GoのGC (garbage collector)について理解する

    プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping

    GoのGC (garbage collector)について理解する
    rjj
    rjj 2022/04/25
    CMS。世代別GC今のところ入ってないと。値型やエスケープ解析によってGCの負荷が小さい?
  • GC撲滅への道 - GC Advent Calendar - miura1729の日記

    Garbage Collection Advent Calendarの5日目の記事です。 私はGCが嫌いです。GCは幼稚で礼儀知らずで気分屋で 甘やかすといつまでも動き、ほったらかすとセグフォする。 そんなGCのために、私達人間は何もする必要はありませんよ ♪ ということで、GC撲滅の1方法としてLinear Lispなるものを紹介します。Linear Lispは線形論理という論理に基づいたLisp処理系です。 元論文はこれです。 Lively Linear Lisp -- 'Look Ma, No Garbage!' http://home.pipeline.com/~hbaker1/LinearLisp.html 線形論理については、ここのページが感動的なほどわかりやすいです。 線形論理って何? (情報科学演習 III 課題紹介(小林研究室)) http://web.yl.is.s.u

    GC撲滅への道 - GC Advent Calendar - miura1729の日記
    rjj
    rjj 2021/11/10
  • ISMM 2019 で発表してきました - クックパッド開発者ブログ

    技術部の笹田です。遠藤さんと同じく Ruby のフルタイムコミッタとして、Ruby インタプリタの開発だけをしています。 先日、アメリカのフェニックスで開催された ISMM 2019 という会議で発表してきたのと、同時開催の PLDI 2019 という会議についでに参加してきたので、簡単にご報告します。 カンファレンス会場 ISMM 2019 ISMM は、International Symposium on Memory Management の略で、メモリ管理を専門にした、世界最高の学術会議です。というと凄いカッコイイんですが、メモリ管理専門って凄くニッチすぎて、他にないってだけですね。多分。ACM(アメリカのコンピュータ関係の学会。すごい大きい)SIGPLAN(プログラミングに関する分科会。Special Interest Group)のシンポジウムになります。 発表するためには、他

    ISMM 2019 で発表してきました - クックパッド開発者ブログ
  • ログレベルが突然変わる謎の事象を追う ~ あるOSSサポートエンジニアの1日 - Qiita

    Logger.getLogger("test").setLevel(Level.OFF); これは、testという名前のロガーのログ出力を抑止することを目的としたコードです。 ここで使っているLoggerはJava標準のjava.util.logging.Loggerで、getLogger()は引数で与えられた名前のロガーインスタンスが既に生成されていればそれを返し、無ければ新たに生成するメソッドです。setLevel()は、そのロガーのログレベルを設定します。引数はLevel.OFFなので、ログ出力を無効にします。 この記事は、上記コードが引き起こした問題についての実話です。 このコードが起こした問題 ある日、私のもとに至急の調査依頼が来ました。その内容は、「Tomcatの再起動をきっかけに、Webアプリケーションがボディの無い正常応答を返すようになった」というものでした。 その後の再起

    ログレベルが突然変わる謎の事象を追う ~ あるOSSサポートエンジニアの1日 - Qiita
  • Open-sourcing a 10x reduction in Apache Cassandra tail latency

    At Instagram, we have one of the world’s largest deployments of the Apache Cassandra database. We began using Cassandra in 2012 to replace Redis and support product use cases like fraud detection, Feed, and the Direct inbox. At first we ran Cassandra clusters in an AWS environment, but migrated them over to Facebook’s infrastructure when the rest of Instagram moved. We’ve had a really good experie

    Open-sourcing a 10x reduction in Apache Cassandra tail latency
    rjj
    rjj 2018/04/11
    "After investigation, we found the JVM garbage collector (GC) contributed a lot to the latency spikes." "the P99 read latency dropped from 60ms to 20ms. We also observed that the GC stalls on that cluster dropped from 2.5% to 0.3%"
  • Go言語のリアルタイムGC 理論と実践 | POSTD

    (編注:誤訳、意味の分かりづらい訳を修正しました。リクエストありがとうございました。) 毎日、Pusherは数十億のメッセージをリアルタイム、つまり送り元から宛先まで100ms未満で送信しています。どのようにしてそれを可能にしているのでしょうか。重要となる要因はGoの低レイテンシのガベージコレクタです。 ガベージコレクタはプログラムを一時停止させるものであり、リアルタイムシステムの悩みの種です。そのため、新しいメッセージバスを設計する際には慎重に言語を選びました。Goは 低レイテンシを強調している ものの、私たちは懐疑的でした。「当にGoを使えば実現できるのか? もしできるならどうやって?」 このブログ記事ではGoのガベージコレクタを、どのように機能し(トリコロールアルゴリズム)、なぜ機能し(こんなに短いGCによる一時停止時間の実現)、そして何よりも、それが機能するのかどうか(GCによる

    Go言語のリアルタイムGC 理論と実践 | POSTD
    rjj
    rjj 2017/04/28
    いや、これ並列GCじゃなくて並行GCだろ、とか、これをリアルタイムGCと呼んだらGC警察やリアルタイム警察が黙ってないぞ、とか。
  • Go言語の低レイテンシGC実現のための取り組み | POSTD

    (訳注:2016/9/28、頂きましたフィードバックを元に記事を修正いたしました。) 私たち Twitch では、通信が大変混み合うシステムの多くで Go を採用しています。ライブ映像を配信したり、何百万人というユーザにチャットサービスを提供したりする場合に直面する問題を考慮すると、Goはそのシンプルさや安全性、パフォーマンス、読みやすさの点で良いツールだと言えます。 しかしこれは、私たちにとってGoがいかに素晴らしいツールかを説明する、よくある記事ではありません。Goで現在実装されているランタイムにより行き詰まったいくつかの局面をどう打開するか、さらに、私たちはそうした限界に達した時にどう対応したらいいのかについて書いたものです。 これからお話しするのは、「Go 1.4からGo 1.6へのGoランタイムの改善が、どのようにしてガベージコレクション(GC)の停止時間を20倍も改善することに

    Go言語の低レイテンシGC実現のための取り組み | POSTD
    rjj
    rjj 2016/09/18
    人類はなぜ新しいプログラミング言語が生まれるたびに同じGCの改善を繰り返し続けるのか。
  • More JVM Signal tricks - Thread control via mprotect · Jackson Davis

    rjj
    rjj 2016/08/18
    フラグをチェックするより速いのか?
  • 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
    rjj
    rjj 2016/07/02
  • Golangの新しいGCアルゴリズム Transaction Oriented Collector(TOC)

    http://golang.org/s/gctoc Goの新しいGCのProposalが出た.まだProposal段階であり具体的な実装はないが簡単にどのようなものであるかをまとめておく. GoのGCはGo1.5において単純なStop The World(STW)からConcurrent Mark & Sweepへと変更され大きな改善があった(詳しくは“GolangのGCを追う”に書いた).先の記事に書いたようにGo1.5におけるGCの改善は主にレイテンシ(最大停止時間)に重きが置かれいた.数値目標として10msが掲げられGo1.6においては大きなヒープサイズ(500GB)においてそれを達成していた. GCの評価項目はレイテンシのみではない.スループットやヒープの使用効率(断片化の対処)なども重要である.Go1.6までのGCではそれらについて大きく言及されていなかった(と思う).例えばスル

    rjj
    rjj 2016/06/30
    Thread-local GCというかregion-based(G1GC的な意味でなく)GCというか、わりとよく聞くタイプ。
  • 1