タグ

gcに関するlxyumaのブックマーク (21)

  • IL2CPP internals: Garbage collector integration | Unity Blog

    This is the seventh post in the IL2CPP Internals series. In this post, we will explore a bit about how the IL2CPP runtime integrates with a garbage collector. Specifically, we’ll see how the GC roots in managed code are communicated to the native garbage collector. As with all of the posts in this series, this post deals with implementation details that can and likely will change in the future. In

    IL2CPP internals: Garbage collector integration | Unity Blog
    lxyuma
    lxyuma 2015/12/19
    il2cppはBoehm-Demers-Weiser GC。(Rootから辿ってるのでmark sweapっぽいが、使い方次第で世代別GCも出来る様子。カウント式でないので循環参照は発生しない?)今後、CoreCLR gcに移るかも。
  • Goのガーベジコレクタを視覚化するツール | POSTD

    (環境変数GODEBUGは、 ランタイム パッケージで提供されています) この環境変数を指定してプログラムを起動すると、標準出力に以下の追加出力が出力されます(少し簡略化されています)。 % env GODEBUG=gctrace=1 godoc -http=:6060 ... gc76(1): 2+1+1390+1 us, 1 -> 3 MB, 16397 (1015746-999349) objects, 1436/1/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields gc77(1): 2+0+1582+1 us, 2 -> 4 MB, 14623 (1016248-1001625) objects, 1436/0/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields scvg0: inuse:

    Goのガーベジコレクタを視覚化するツール | POSTD
  • JavaScript Memory Management Masterclass

    Video: https://www.youtube.com/watch?v=LaxbdIyBkL0 Presented at at the Google WebPerf Special (London WebPerf Group), August 26th 2014. Efficient JavaScript webapps need to be fluid and fast. Any app with significant user interaction needs to consider how to effectively keep memory usage down because if too much is consumed, a page might be killed, forcing the user to reload it and cry in a corner

    JavaScript Memory Management Masterclass
  • steps to phantasien(2008-09-07) v8祭り

    ウェブっ子の間では Google Chrome の JS 処理系である V8 祭りが絶賛開催中らしい. いつもは出遅れる私もたまにはやんやしたいと思っていろいろ読んでみたものの, VM に傷気味な自分に気付いた. けれど, そうは言っても祭りは別腹. 一通り騒いでみます. 販促マンガ や 資料 によれば, V8 は以下のような特徴を備えている. hidden class transition と fast property access generational accurate GC accurate だから incremental GC もできる オブジェクトの rellocation はするけど handle は使わず参照元書き換え 中間表現のインタプリタなしの native code 生成. instruction cache コードをみたところ, incremental GC

    lxyuma
    lxyuma 2014/05/10
  • Embedder's Guide - V8 JavaScript Engine - JavaScriptで遊ぶよ - g:javascript

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    Embedder's Guide - V8 JavaScript Engine - JavaScriptで遊ぶよ - g:javascript
    lxyuma
    lxyuma 2014/05/05
    公式docの和訳
  • Javaのメモリの管理 - OKWAVE

    私がわかっている範囲内ですが、ざっとJava仮想マシン内のメモリ状況について整理してみます。 まずオブジェクトを保管するためのメモリ領域ですが、これは「メソッドエリア」と「ヒープ」の2つがあります。メソッドエリアはクラスを保管する場所であり、ヒープはインスタンスを保管する場所です。これとは別に、実行のためのエリアとして「Javaスタック」と呼ばれる領域がスレッドごとに用意されます。これが基です。 Javaでプログラムが実行される(すなわち、新たなスレッドがたてられる)と、JVMは、まずそのスレッドが使用するためのJavaスタックをメモリ内に確保します。そして、メソッド等がコールされる度に「フレーム」と呼ばれる領域を作成し、そこに必要な情報を保管します。 実行するスレッド内からオブジェクトが利用されようとすると、JVMはまず使用するクラスを「メソッドエリア」にロードします。そしてインスタン

    Javaのメモリの管理 - OKWAVE
    lxyuma
    lxyuma 2014/05/05
    「メソッドエリア」クラスを保管する場所「ヒープ」インスタンスを保管する場所「Javaスタック」実行のためのエリア(スレッドごとに用意)「フレーム」メソッド等がコールされる度に必要な情報を保管
  • static allocation in java - heap, stack and permanent generation

    lxyuma
    lxyuma 2014/05/05
    static系は基本、heap内のpermanent generationに行く
  • 一般教養としてのGarbage Collection (PDF)

    Garbage Collection ( ) (endo@logos.t.u-tokyo.ac.jp) 6 : Jan 27, 2005 1 Garbage Collection ? 2 (1) (2) ( 1) C C++, Pascal ML Java, Perl C malloc (allocate) free ( malloc Java/C++ ML tuple record ) C ( / free) 12 ML tuple record garbage collection(GC) GC • UNIX (1995 ) emacs GC • Java web Java 0.5 / ( )black box GC GC ( 1) Java Sun HotSpot VM (Ver. 1.4.2) GC 3 generational GC (6.2 ) ( ) copying GC (

  • jQueryのメモリーリークの傾向と対策 — KaoriYa

    Web開発にとても便利なjQueryですが、 実はメモリーリークを誘発しやすい構造であることは あまり知られていないようです。 記事ではメモリーリークが発生する傾向と対策を紹介します。 皆さんjQueryは使ったことありますよね。Webでの開発ではとても便利で、ほぼ必須と言っても過言ではありません。しかしながらこのjQueryはメモリーリークを誘発しやすい構造であることはあまり知られていません。 GCのあるJavaScriptでメモリーリークが発生するとは何を言っとるんだ、と思われる向きもあるやもしれません。しかしGCがあっても、もう使わなくなったオブジェクトを配列やテーブル(Object)にしまいこんでいて、それを回収するタイミングが存在しなければ積もり積もってメモリを圧迫する、メモリーリークとなりうるというのは想像に難くないでしょう。jQueryで起こりうるメモリーリークはそのような

  • Garbage collection - Mozilla | MDN

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    lxyuma
    lxyuma 2014/03/08
    handleについて
  • V8 JavaScript engine

    Show navigationWhat is V8?V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++. It is used in Chrome and in Node.js, among others. It implements ECMAScript and WebAssembly, and runs on Windows 7 or later, macOS 10.12+, and Linux systems that use x64, IA-32, ARM, or MIPS processors. V8 can run standalone, or can be embedded into any C++ application. Latest p

    V8 JavaScript engine
    lxyuma
    lxyuma 2014/03/08
    ハンドルとGC
  • 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
  • Effectively managing memory at Gmail scale  |  Articles  |  web.dev

    Effectively managing memory at Gmail scale Stay organized with collections Save and categorize content based on your preferences. Introduction While JavaScript employs garbage collection for automatic memory management, it is not a substitute for effective memory management in applications. JavaScript applications suffer from the same memory related problems that native applications do, such as me

    Effectively managing memory at Gmail scale  |  Articles  |  web.dev
    lxyuma
    lxyuma 2014/03/04
    配列=数値keyを持つobjらしい
  • 『オブジェクト指向講座 スタック領域とヒープ領域』

    令和からの働き方について -TownSoft- 元「傲慢SE日記」で、しばらく放置していました。 2020年からはこれからの働き方などについて書いて行こうかと思います。 カテゴリーは手続き型言語になれている人がどうやったらオブジェクト指向を理解できるのかを考えて書いている記事です。 多少の言語知識があることを前提に進めます。 C#やJava等の言語では肝となる部分です。 この概念が分からないとガベージコレクションの概念が分かりません。 そして、この概念を持っているとオブジェクト指向の理解が早まります。 さて、スタック領域は皆さん知っているはずです。 特にC言語を使っている方はお手の物のはずです。 なぜなら、 普段使っている領域 ですから。 まぁ、順を追って一つずつ解決していきましょう。 まず。ポインタの概念からゆっくりと解決していきましょう。 int i = 0; この書式はint型のi

    『オブジェクト指向講座 スタック領域とヒープ領域』
    lxyuma
    lxyuma 2014/03/03
    通常=スタック。new時に、ポインタのスタックと、ヒープに実際の値
  • 第5回 チューニングのために理解しておきたいGCの4つのアルゴリズム | gihyo.jp

    なぜアルゴリズムを学ぶのか GCによる停止時間が長くなり、アプリケーションの処理時間が短くなると、業務に使える時間が短くなってしまいます。その問題を解決するために、GCをチューニングすることで、アプリケーションの停止時間を短くすることが考えられます。 その際大事なのは、GCのアルゴルズムを把握しておくことです。 GCのチューニングを行うときは、GCで行われている処理の内、どの処理に時間がかかっているかをモニタリング⇒分析⇒チューニングする、という流れになります。しかし、GCのアルゴリズムを知らないと、モニタリング結果を見てもどこに問題があるかがわからず、分析やチューニングを行うことができません。 今回は、以下の4つのアルゴリズムをご紹介します。 マーク&スイープGC コンパクション コピーGC 世代別GC GCのアルゴリズムはJVMの実装によって異なりますが、多くの場合、上記4つのアルゴリ

    第5回 チューニングのために理解しておきたいGCの4つのアルゴリズム | gihyo.jp
    lxyuma
    lxyuma 2014/03/02
    マークスイープ、コンパクション、コピーGC、世代別GC
  • Firefox、世代別GCの実現へ - "苦痛の時間"を乗り越える

    Firefox web browser - Faster, more secure & customizable Mozillaブログに掲載された記事「A big step towards generational and compacting GC」がFirefoxの今後の性能に大きく影響を与えるとみられる重要な開発ステップに到達したことを伝えた。ガベージコレクタを世代別ガベージコレクションおよびコンパクションの機能を備えたものへ移項させるために必要になる、もっとも泥臭く全体にわたって書き換えをしなければならない部分の作業が完了したという。これは実質的にFirefoxが世代別GCの実装が可能になったことを意味している。 ガベージコレクションはメモリのサイズが大きくなってきた場合、回収にかかる時間が延びるという問題を抱えている。また、確保と解放を繰り返すことでメモリが分断化してメモリ領域の

    Firefox、世代別GCの実現へ - "苦痛の時間"を乗り越える
    lxyuma
    lxyuma 2014/03/02
    世代別gcに必要だった事。メモリ参照
  • 進化するJavaScriptエンジン、Firefox 19から29の技術開発要点まとめ

    Firefox web browser - Faster, more secure & customizable Mozillaはこれまでいくつかのモンキーを開発してきた。「SpiderMonkey」「JaegerMonkey」「TraceMonkey」「IonMonkey」「OdinMonkey」はそれぞれJavaScriptエンジン。さまざまな視点からJavaScriptエンジンが開発され、古いエンジンは新しいエンジンに置き換わっている。いくつかブレイクスルーがあったが、特に高速化の要は可能な限りの「型の推論」と「事前コンパイル」にある。最新のコードでは最良のケースでC++のコードに匹敵しそうなところまで高速化が進んでいる。 Mozillaブログに掲載された記事「The monkeys in 2013」が、2013年におけるFirefox JavaScriptエンジンの進化を伝えた。F

    進化するJavaScriptエンジン、Firefox 19から29の技術開発要点まとめ
    lxyuma
    lxyuma 2014/03/02
    2014年に世代別GCくる
  • エデンの園でおきたこと - steps to phantasien

    有給を駆使し一足早くクリスマス休暇に突入、ヒャッホイ Ingress やるぜーと 意気込んでいた矢先ノロウイルスにやられダウンした。かなしい。鎮まれ俺の胃袋・・・ そんな腹痛日和の気晴らしとして今日は Garbage Collection Advent Calendar に参加してみることにしました。 Advent Calendar 初体験につきよくわかってないけど勝手に参加していいんですよね? GC というとジェネレーショナルだのパラレルコンカレントだのといった話が目立ちがちだけれど、 現実の問題というかブラウザを相手にするとそれ以外の細々とした面倒が目につく。 GC つき言語 (JavaScript) のコードと C++ で書かれたコードとの連携は最たる面倒の1つ。 たとえば WebKit の DOM は C++ で実装されており、 C++ のオブジェクトは JavaScript 処理

  • Learn web development  |  web.dev

    Stay organized with collections Save and categorize content based on your preferences. Explore our growing collection of courses on key web design and development subjects. An industry expert has written each course, helped by members of the Chrome team. Follow the modules sequentially, or dip into the topics you most want to learn about.

    Learn web development  |  web.dev