タグ

GCに関するyuguiのブックマーク (28)

  • Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog

    情報を発信する人のところに情報が集まることを日々実感しているので、Linuxのメモリ管理に特に詳しいわけではないのですが最近遭遇した問題について自分の理解を書いておきます。ざっと調べても同じことを書いている人を見つけられなかったので、公開には意義があると考えています。識者の方がフィードバックをくださると嬉しいです。 ※ AIの出力をベースに書いているのでいつもと少し文体が違います。 背景 要約 調査 再現の難しさ Goアプリケーションの調査 pprofによる分析 GCログの調査 Linuxの調査 Goランタイムの調査 GoのGCとTHP khugepagedの問題 Goランタイムにおける回避策 回避策の削除 max_ptes_noneのデフォルト値について MADV_NOHUGEPAGEをやめた理由 調査内容まとめ 解決策 検証 C言語 Go言語 まとめ 背景 Go言語で書かれたOSSのア

    Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog
  • Chromium のメモリ管理 (Oilpan) - Qiita

    はじめに 前回の PartitionAlloc の記事 に続いて、PartitionAlloc と双璧をなす Chromium のメモリ管理 Oilpan について紹介します。 文中に出てくるデバッガー コマンドは、以下のエクステンションに含まれています。 GitHub - msmania/chromium-debug: Debugger extension for Chromium https://github.com/msmania/chromium-debug Oilpan 概要 Chromium プロジェクト公式のページはこちらです。 Blink GC Design https://chromium.googlesource.com/chromium/src.git/+/master/third_party/blink/renderer/platform/heap/BlinkGC

    Chromium のメモリ管理 (Oilpan) - Qiita
    yugui
    yugui 2024/02/29
  • Rubyコミッター・笹田耕一に世代別インクリメンタルGCを発想したプロセスを聞いてみた - エンジニアHub|Webエンジニアのキャリアを考える!

    Rubyコミッター・笹田耕一に世代別インクリメンタルGCを発想したプロセスを聞いてみた Rubyのフルタイムコミッターである笹田耕一さんに、Rubyの処理性能を向上させるいくつかのブレイクスルーをどのように解決し、どのような困難があったのかを聞きました。 直感的な文法や生産性の高さから、世界中の人々に愛されるオブジェクト指向スクリプト言語Ruby。その黎明期から現在に至るまで、大きな変化を遂げてきた要素があります。“処理速度”です。数々の最適化が行われた結果、Rubyの処理性能はかつてとは比べものにならないほど向上しました。 その改善を支えたのは、世界中のRubyコミッターたち。中でも、性能向上において多くの成果を残してきたのが、クックパッド株式会社でフルタイムRubyコミッターとして働く笹田耕一(ささだ・こういち/ @koichisasada )さんです。稿では、彼がいかなる設計方針に

    Rubyコミッター・笹田耕一に世代別インクリメンタルGCを発想したプロセスを聞いてみた - エンジニアHub|Webエンジニアのキャリアを考える!
    yugui
    yugui 2019/06/01
  • GoogleのエキスパートがChromeのフリーズを直すまでの奮闘記 - ライブドアニュース

    「24コアもあるCPUを積んでいるハイエンドPCであるにもかかわらずGmailを使っている際にChromeがフリーズしてしまった」という現象に遭遇したブルース・ドーソンさんが、その原因を発見するまでの取り組みをブログに書き残しています。なお、ドーソンさんはGoogleChromeを開発しているエキスパート開発者です。 24-core CPU and I can’t type an email (part one) | Random ASCII https://randomascii.wordpress.com/2018/08/16/24-core-cpu-and-i-cant-type-an-email-part-one/ ある日の朝、ドーソンさんは極めて日常的な「メールを書く」という作業をGmailで行っていたところ、入力した文字が遅れて表示されるなどの怪しい挙動を見せた後、突然Gma

    GoogleのエキスパートがChromeのフリーズを直すまでの奮闘記 - ライブドアニュース
  • Ruby Issue Tracking System

    Ruby is a dynamic, open-source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write. This system is hosting the development of Ruby language and its related projects. You must register your account and activate it via an email before reporting issues. Or login if you have an account. How to report a bug¶ How To Report

    yugui
    yugui 2013/04/28
  • 観察日記 2011-07-15 - なるせにっき

    Mac上でのベンチマーク結果速報 http://www.atdot.net/sp/readonly/nfbnnl_kosaki0 Mac上でのベンチマーク結果速報 これはえーと 一番下だけ見ればいいのか はい 基的には、若干悪化している、と。 稀に速くなってるのもあるな。 vm_thread_mutex3 はなんぞ あと、vm3_clearmethodcache もなんぞ cleanmethodcacheはささださんがメソッドキャッシュをごそっと変えた影響 vm_thread_mutex3は1000スレッドが1つのmutexを奪い合うベンチ 遅いっつってもじゅーぶん許せる範囲だと思いますです。 vm_thread_mutex3hは皆さんの努力の成果か。 ですす ほとんどのベンチはシングルスレッドなので、そのへんだけが193の成果 ... 短すぎて測定結果が無意味になってたベンチ全部ループ

    観察日記 2011-07-15 - なるせにっき
  • OOPと自動メモリ管理 - みねこあ

    Simula は サブルーチンの不自由さに対し改善を施すことで、クラスとオブジェクトを発明しました。その副作用として、コールスタックによる自動メモリ管理が使えなく(←「コイツ使えね~っ」の「使えない」)なってしまいました。 * * * 「階層的プログラミング構造」Ole-Johan Dahl, C.A.R Hoare より引用しつつ。 Simula が シミュレーションのための言語を模索する過程で クラス・オブジェクトの発明に行きいきさつは、 平行しているプロセスを表現するために, 対応するプログラム要素が,計算機で多重プログラム(multiprogram)処理されなければならない,というわけではない.しかし,プログラムは,一時的に停止(中断)し,後で止まっていたところから再び実行出来ることが必要である.そこで動作している対象,すなわちシミュレーションにおける“プロセス”は,スケジュール機

    OOPと自動メモリ管理 - みねこあ
    yugui
    yugui 2008/11/06
  • ガベージコレクション(GC): ホットコーナー

    ブログ(iiyu.asablo.jpの検索) ホットコーナー内の検索 でもASAHIネット(asahi-net.or.jp)全体の検索です。 検索したい言葉のあとに、空白で区切ってki4s-nkmrを入れるといいかも。 例 中村(show) ki4s-nkmr ウェブ全体の検索 ASAHIネット(http://www.asahi-net.or.jp)のjouwa/salonからホットコーナー(http://www.asahi-net.or.jp/~ki4s-nkmr/ )に転載したものから。 --- http://iiyu.asablo.jp/blog/2008/09/04/3741480 ピンボールのリトルウイングの藤田さんと飲んだ\(^O^)/ で書いてなかった、藤田さんと飲んだときに出た話題その2(その3まである)。 藤田さんが作った新Schemeのイプシロンで、並列ガベージコレクシ

    yugui
    yugui 2008/09/26
  • 2008-07-26 - 兼雑記 - SGC

    色々あって GC に興味がちょっと出たので色々見てました。とりあえずまとまった日語資料としては以下の PDF が一番良いように思いました。 kinaba さんがちょっと前に言及しておられたえんどう豆的でない方の遠藤さんが書いた文章らしい。 http://matsu-www.is.titech.ac.jp/~endo/gc/gc.pdf これをざーと読んでいくと、すごくためになって、色々わかるのですが、最後の方の 7.2 に、 筆者は、 parallel かつ concurrent な GC を、 Boehm GC を基にして実装している。 とか書いてあって、そのちょっと前に concurrent GC ってのは要は別スレッドでちょいちょい GC 動かす実装で、 incremental GC の一種と考えられて、要 write barrier 。とか書いてあるわけです。でこれってちょっと考

    2008-07-26 - 兼雑記 - SGC
    yugui
    yugui 2008/07/29
    へー。ページ保護でwrite barrier
  • (私が C++ プログラマだということに一応の合意をしていただけると仮定した上で) ある C++ プログラマから見た Garbage Collection の理解 - Cry's Blog

    少なくとも自分は, C++ でプログラムを組むなら,生成したオブジェクトは必ず責任を持って破壊することを徹底しているし,確保したヒープは責任を持って OS さんにお返しすることを徹底している.これは C++ の基中の基だというのが自分の考え.だから C++ においては「他のオブジェクトから参照されなくなった不要なオブジェクト (ゴミ,garbage) を回収 (collection) する機構」は要らないというのが個人的な立場. しかしながら,「だから C++ において GC は不要」とはならない.これが今現在の自分の考え. C++ には,他のオブジェクトを参照するという概念を言語の機能として提供していて,それは型・構文に明示的に現れる.ポインタ型・参照型がそれ. 注意するべきは, C++ においては「あるオブジェクトを参照している」という概念と「あるオブジェクトの生存を維持している

    (私が C++ プログラマだということに一応の合意をしていただけると仮定した上で) ある C++ プログラマから見た Garbage Collection の理解 - Cry's Blog
    yugui
    yugui 2007/07/26
    "GC というモノはむしろその名前に反して「他のオブジェクトから参照されている必要なオブジェクトの生存を保証する機構」"
  • はてなブログ | 無料ブログを作成しよう

    うまくいかない日に仕込むラペ 「あぁ、今日のわたしダメダメだ…」 そういう日は何かで取り返したくなる。長々と夜更かししてを読んだり、刺繍をしたり…日中の自分のミスを取り戻すが如く、意味のあることをしたくなるのです。 うまくいかなかった日のわたしの最近のリベンジ方法。美味しいラペを…

    はてなブログ | 無料ブログを作成しよう
    yugui
    yugui 2007/07/07
  • akihiro kamijo: イベントリスナ (AS3) とガーベジコレクション

    不要になったオブジェクトへの参照が残っていると、そのオブジェクトの使用しているメモリを開放することができません。特に複数の参照を持つオブジェクトに対しては、参照の消し忘れによるメモリリークが発生しないよう注意が必要です。 イベントリスナを登録すると、イベントのターゲットになるオブジェクトとイベントリスナを持つオブジェクトの間で参照ができます。AS3 では下のような記述になります。 eventTarget.addEventLisener("type", eventHandler); このコードを実行すると eventTarget と this の間に参照がつくられます。(eventHandler は this オブジェクトのメソッド) ところが、これは明示的な参照の追加ではありません。そのため、参照の削除が必要な場合でも見落としてしまいそうですよね。 というわけで、今回はイベントリスナ追加

    yugui
    yugui 2007/05/27
  • 例外処理@C++ - Cry's Blog

    C++ に限定して言えば, 例外処理とは,究極的には「いかに try-catch を書かずに済ませるか」 だと思っている人だったり.要するに,例外処理という文脈においても RAII の徹底というのが C++ としての基だろう,っていう.ただし,あくまで「究極的には」であって,たった1つの関数だけで必要となる特殊な rollback 処理に対して,いちいち対応するクラス定義を切り出すことが実用上無理なのは確か.その「実用上 RAII で扱うのが難しい部分」を救う言語機能は欲しいけれど,それは GC でも finally でもないと思うにゃー,っていうのが今現在の自分の考え. 「GC は例外使うときに便利」というのは,確かにその主張は真だと思う一方で,あまりにも「便利になる範囲が狭すぎる」嫌いを感じる. finally に関しては以下に書くかも知れにゃい.

    例外処理@C++ - Cry's Blog
    yugui
    yugui 2007/03/17
  • 中里一日記: 弱参照キャッシュの罠

    弱参照キャッシュの罠 Javaの弱参照をキャッシュに使いましょう、という話がよくある。しかしこの手を考えなしに使うと、罠にはまる。私がはまった。 キャッシュ対象を生成する操作で、大量のメモリを確保・解放したら、なにが起こるか? あるときはなにも起こらない。あるときはガベージコレクションが起こる。起動後しばらくは前者であることが多い。起動からしばらくすると、後者がぼちぼちと起こるようになる。 ガベージコレクションは弱参照を消してしまう。 ということは、だ――キャッシュ対象Aを生成するときにB, C, D...が消されてしまい、その消されたBを生成するときにA, C, D...が消されてしまい…… という現象が起こる。しかもこの現象は、起動直後には起こらず、しばらく経ってから起こるようになる。 いったんこの現象が起こると、まるでスイッチが入ったように止まらなくなる。特に、複数スレッドでキャッシ

  • ACM Sigplan Notices 29, 4 (Apr 1994), 5863.

    原文: Thermodynamics and Garbage Collection. ACM Sigplan Notices 29, 4 (Apr 1994), 58–63. Henry G. Baker Nimble Computer Corporation 16231 Meadow Ridge Way, Encino, CA 91436 (818) 986–1436 (818) 986–1360 (FAX) Copyright (c) 1993 by Nimble Computer Corporation 日語訳: 酒井 政裕 私たちは統計力学の原理とそのストレージ管理の問題への適用について議論します。 また、私たちは 情報, 状態, 可逆, 保守的 といった用語の不正確な用法による問題について指摘します。 A. はじめに 計算機科学者は抽象統計熱力学についての知識を持っている

  • Failmalloc

    Welcome to failmalloc. This software generates a shared library which can be loaded by LD_PRELOAD or linked at compilation time. The idea behind failmalloc is to demonstrate what really happens if memory allocation fails. Unfortunately, most programs in this world are not robust, mostly because programmers are careless, but sometimes because programmers are too brave. Regardless of whatever reason

    yugui
    yugui 2006/07/20
    わざとmallocを失敗させるライブラリ。おー。なるほど。dmallocと同じ発想か。
  • TheServerSide | Your Java Community discussing server side development

    OpenAI API tutorial: How to use AI prompt chaining This walkthrough teaches developers how to chain AI prompts and models using the OpenAI API, in this case to identify and present specific data from William Shakespeare plays. Get started with Spring Tools Suite 4 Getting started with Spring Boot has never been easier. The Spring Tools Suite for Eclipse comes with everything you need to write, com

  • 「メモリーを意識してみよう」第4回 進化するメモリー管理:ITpro

    先々週にHotSpot VMでのメモリー管理について解説しました。ここでキーとなるのは世代別GCです。 HotSpot VMで世代別GCが採用される以前は,Old領域のGCで使用されるMark & Sweep GCだけでした。世代別GCが導入されたことにより,GCのパフォーマンスは劇的に向上したのです。 しかし,GCの進化はここで終わってしまったのではありません。Java SE 6(開発コード名Mustang)にいたるまで,様々な改良が加えられてきました。 今週はそれらの新しいGCの手法について解説していきます。その前に,まずは基となるMark & Sweep GCを説明しましょう。 Mark & Sweep GC Mark & Sweep GCは二つのフェーズでGCを行います。 はじめのフェーズで,使用しているインスタンスに印をつけます(Mark,図1a)。Markにはルートインスタン

    「メモリーを意識してみよう」第4回 進化するメモリー管理:ITpro
    yugui
    yugui 2006/06/27
    Java SE 6から、auto-boxingの途中のオブジェクトなど、ライフサイクルがスコープ内のオブジェクトはスタックに積むらしい。
  • Matzにっき(2006-05-29)

    << 2006/05/ 1 1. さよなら、子犬 2. [原稿] 日経Linux 7月号 2 1. [Ruby] 日Rubyカンファレンス2006 2. [言語][特許] Whitespace keywords patent invention 3. Radium Software Development: Arithmetic Error 3 1. 米子訪問 2. 次のキラーアプリは宗教か?--盛り上がりを見せる「教会関連技術」市場 3. Rastインデックス生成開始 4 1. ハリーポッター 2. オイラーの等式 3. Rastインデックス 5 1. 記憶 2. 堀川遊覧 6 1. 休息 2. マスターマインド 7 1. [教会]断安息日 8 1. 買い物 2. 昼 3. 移動 4. Lightweight Language Ring 5. 夕 9 1. 掃除機とコンロで作る2

    Matzにっき(2006-05-29)
    yugui
    yugui 2006/06/05
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    yugui
    yugui 2006/06/01
    オブジェクト・ロイタリング