タグ

golangとgcに関するt2y-1979のブックマーク (7)

  • Go 1.20リリース連載が始まります&メモリアリーナの紹介&落ち穂拾い | フューチャー技術ブログ

    しかし、これでもリファレンスは表示されず、パッケージドキュメントしか表示されません。 この機能はオプトインで動くもので、ビルドの時に環境変数が必要だったことを思い出し、これを指定するとようやく見れました!機能はシンプルですね。 ちなみに、これを書く時にまったく違う同名のライブラリを見て、ふむふむと読んでいたのですが、家の方は検索では出てこないのでみなさまもお気をつけください。 使い方はシンプルですね。 まずは arena.NewArena()で*Arenaを作成 使い終わったら Free()メソッドを呼び出す arena.MakeSlice[Type](arena)やarena.New[Type](arena)といった関数を使ってアリーナ内部のメモリを利用 arena.Clone(obj)を使うと、アリーナが終了しても残るよう、ヒープに値を移動する(浅いコピー) Goはメソッドのジェネリ

    t2y-1979
    t2y-1979 2023/02/21
    なんかすごい
  • GoのGC (garbage collector)について理解する

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

    GoのGC (garbage collector)について理解する
  • Go言語のGCについて - LINE ENGINEERING

    なぜGo言語はコンパクションを採用していないのか GoogleのRick Hudson氏によるISMM 2018 Keynote “Getting To Go”を参照すると、以下のことがわかります。 2014年の時点では”Read barrier free concurrent copying GC”を計画していた しかし期間的な制約から断念し、CMSに舵を切った(この時期に彼らは、ランタイムをCからGoに書き換える作業も行う必要がありました。Changes to the runtime) TCMallocをベースとしたメモリアロケーターを採用することで、断片化およびアロケーションの速度の問題を解決した Go言語のメモリアロケーションについては、ランタイムのコードのコメントにも詳しく記載されています。 malloc.go This was originally based on tcmal

    Go言語のGCについて - LINE ENGINEERING
  • Go言語のリアルタイムGC 理論と実践 | POSTD

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

    Go言語のリアルタイムGC 理論と実践 | POSTD
  • How to optimize garbage collection in Go

    After publishing \\[a post about why we chose Go for CockroachDB](https://www.cockroachlabs.com/blog/why-go-was-the-right-choice-for-cockroachdb/), we received questions about how we deal with some of Go’s known issues — especially those related to performance, garbage collection, and deadlocks. In this post, we’ll share a few powerful optimizations that mitigate many of the performance problems c

    How to optimize garbage collection in Go
  • 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

  • Go 1.6 will Make its Garbage Collector Faster

    InfoQ Software Architects' Newsletter A monthly overview of things you need to know as an architect or aspiring architect. View an example

    Go 1.6 will Make its Garbage Collector Faster
  • 1