サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
www.narihiro.info
第7章 スレッドの排他制御 本章ではスレッド間の共有リソースにアクセスするための排他制御について説明します。GCで利用するスレッドはオブジェクトを共有リソースとして扱いますので、排他制御が必要になる場面が多々あります。 7.1 排他制御とは メモリ領域を共有するスレッドでは、同じアドレスにあるデータを複数のスレッドが同時に読み書きできてしまいます。ほかのスレッドから割り込みで変更される可能性があるデータに対し、割り込みを想定していないコードを書いてしまった場合は、思わぬところでメモリ破壊が生じてしまい、原因が特定しづらいエラーが発生してしまうかもしれません。 このように単一のリソースに対して、複数のスレッドから同時に処理が実行されるとまずい部分をクリティカルセクションと呼びます。 クリティカルセクションを扱う処理では、スレッド単体でアトミックに一連の処理を実行し、割り込みがないようにほかの
リスト13.1: プリミティブ型と参照型 1: int primitiveType = 1; // プリミティブ型 2: Object referenceType = new Object(); // 参照型 Javaの変数に格納される型としてint、floatといったプリミティブ型があります(リスト13.1の1行目)。プリミティブ型はJava上では数値として扱われます。それと同様にC++(HotspotVM)上でもintやfloatといった数値として扱われます。 一方、Objectクラス(またはその子クラス)のインスタンスを指す参照型があります(リスト13.1の2行目)。参照型はC++(HotspotVM)上ではオブジェクトへのポインタとして扱われます。 ここで問題となるのがプリミティブ型はVM上で数値として扱われるという点です。つまり、プリミティブ型の値は偽ポインタの可能性があります。
G1GC 2012-09-14 www.narihiro.info i @yamaz @takahashim @alohakun Koichi Kimura Kohei Yashiro Koichiro Ohba @yukihiro_matz @kakutani @mnishikawa @tmpz84 @kiwanami @eitoball @tmaeda @nuna Anonymous @natsutan @sho_hashimoto @rane_hs @tmoro @suzumura_ss Kenta Murata @ryuone ii @littlestarling @kumagi @joenaha @LuckOfWise Anonymous @miura1729 Hiroshi SHIBATA Anonymous @takekazuomi Yuki Yuki @inuzini_ji
K&Rにのってたmalloc/freeを作ってみました。(約60分) 正気の沙汰とは思えないほど長いですね。反省。 まろっくはむずかしい #include <stdio.h> #include <stddef.h> #include <stdlib.h> /* K&R malloc Heap +--------------------------------------------------------------------- | alloc |header next ...........| allocated |header next.... | +--------------------------------------------------------------------- ^ +-----------------------------^ +-------------
第2章 オブジェクト管理機能 HotspotVMではさまざまなGCアルゴリズムを選択できる機能があります。Javaの起動オプションで「-XX:+UseParallelGC」などと指定するアレのことです。GCはそれぞれ管理するヒープの形状が異なり、また当然ですがGCアルゴリズム自体も異なります。本書ではHotspotVMのヒープやGCをまとめてオブジェクト管理機能と呼ぶこととし、本章ではオブジェクト管理機能の全体像を見ていきます。 2.1 オブジェクト管理機能のインタフェース 図2.1にオブジェクト管理機能のインタフェースイメージを示します。 オブジェクト管理機能はVMに対して主に次の3種類のインタフェースを公開します。 オブジェクトの割り当て 明示的なGCの実行 オブジェクトの位置や形状に依存した処理 1.は、VMがオブジェクトの種類を指定すると、VMヒープの内部に割り当てたオブジェクトの
本書はOpenJDK7のG1GCの実装と、それに関連する技術を解説します。 目次 スポンサーのみなさま はじめに 1.準備 2.オブジェクト管理機能 3.アロケータ 4.ヒープ構造 5.オブジェクト構造 6.HotspotVMのスレッド管理 7.スレッドの排他制御 8.GCスレッド(並列編) 9.GCスレッド(並行編) 10.並行マーキング 11.退避 12.予測とスケジューリング 13.正確なGCへの道 14.ライトバリアのコスト さらに勉強したい人へ その他参考文献 以下から(ある時点で)最新のebookをダウンロードできます。 徹底解剖「G1GC」実装編-20120915.epub 徹底解剖「G1GC」実装編-20120914.mobi 徹底解剖「G1GC」実装編-20120914.pdf 謝辞 本書はスポンサーのみなさまの金銭的支援によって執筆されました。 スポンサーのみなさま あ
原文 翻訳: 中村 成洋 Introduction Java言語の仕様はGCによって未使用領域を再利用することが規定されており、手動のメモリデアロケーションを禁止する。 GCは必要とされないオブジェクトを解放するという心配事からプログラマを解放する。 また、GCはいくらかの一般的なバグの発生を防ぐ、たとえばメモリリーク、ダングリング・ポインタのバグ、二重freeバグである。 GCは明瞭なアドバンテージを持つが、いくらかの問題も持っている。 もっとも重要な問題は、GCの実用的な実装(商用Javaランタイム)が大抵予測不能な「ポーズ」をコレクション時に伴うのである。 Javaプログラムのサイズと複雑さが拡大するにつれ、GCのポーズは、Javaソフトウェアアーキテクトのますます重要な問題となっている。 これを回避するためにエンタープライズJavaで広く使用されている技術は、プログラムを分散させる
原文1、 原文2、 原文3 更新 2011/02/27 fililさんからのご指摘でtypoを修正。TODO部分に対して、考えていただいた訳を反映。 更新 2011/02/14 miura1729さんからのご指摘で誤訳を修正 翻訳: 中村 成洋 SGenは、我々が2年間熱心に取り組み、ここ数ヶ月の間で安定性と十分な競争力を持ってきた、Monoの新しいGCです。 これからの一連のブログの記事として、このGCの一般的な働きと、特別な働き、どのようにしてこのGCがベストな性能をえられるかを紹介し、そして最後に未来のプランを説明します。 なぜ新しいGCなのか? 多くのGC付きのランタイムのように、Monoは開発当時からBoehm-Demers-Weiser collectorを使っていた。以降、これをBoehmと略します。 Boehmの基本的な利点は移植性と安定性があり、楽に組み込むことができる点
原文 翻訳:中村 成洋 更新 2010/09/19 るとさんからのご指摘で誤訳を修正 更新 2010/09/18 nminoruさんと、Dominion525さんのご指摘で誤訳を修正 oopってなに? なんで圧縮する必要があるの? Hotspotの専門用語である「oop(ordinary object pointer:通常のオブジェクトポインタ)」はオブジェクトへの管理ポインタのことだ。 通常はネイティブなポインタサイズと同じになる。つまり、LP64の環境であれば64ビットになるということだ。 ILP32の環境では、最大ヒープサイズは4GBより幾分か少なくなる。これは多くのアプリケーションにとって不十分だ。 じゃあ、LP64の環境ではというと、ほとんどの場合のヒープは、対応するIPL32の環境と比べて約1.5倍になってしまう(どちらも同じ状況と仮定)。 管理ポインタのサイズが増大してしまう
PythonのGarbageCollection 原文 Neil Schemenauer (翻訳:中村 成洋) ポータブルなGarbageCollection 概要 循環参照はリスト,タプル,インスタンス,クラス,辞書,関数に伴って見つかります. インスタンスの __del__ メソッドは正常に取り扱われます. 新しいタイプをGCの対象に追加するのは簡単です. このGCが有効なPythonは,通常のPythonとバイナリ互換です. 世代別GCが動いています(今は三世代).このオーバヘッドをpybenchで測ったら,大体4%くらい占めていました. 実質的に,すべての拡張モジュールは,不変に(私は,標準的な配布において 新しいものとcPickleを修正しなければなりませんでした)ならなければなりま せん.gcと呼ばれている新しいモジュールは,コレクターを調整して,デバッ ギングオプションをセッ
説明 EnterKeyを押すと画面がうなずきます このことで気持ちよくタイピングできるかなーって思った うなずきの効果->マルチモーダル音声対話コーパスの収録とうなずきの分析 var nod = { direction : 3, increment : 3, down_rate : 30, down_max : 0, speed : 10, timer : null, init : function() { var t = nod.extract_px(document.body.style.marginTop); nod.down_max = t + nod.down_rate; document.onkeydown = nod.bind_enterkey }, bind_enterkey : function(e) { if (!e) e = event; if (e.keyCode
English
初秋の一日 夏目漱石 汽車の窓から怪しい空を覗いていると降り出して来た。それが細かい糠雨なので、雨としてよりはむしろ草木を濡らす淋しい色として自分の眼に映った。三人はこの頃の天気を恐れてみんな護謨合羽を用意していた。けれどもそれがいざ役に立つとなるとけっして嬉しい顔はしなかった。彼らはその日の佗びしさから推して、二日後に来る暗い夜の景色を想像したのである。 「十三日に降ったら大変だなあ」とOが独言のように云った。 「天気の時より病人が増えるだろう」と自分も気のなさそうに返事をした。 Yは停車場前で買った新聞に読み耽ったまま一口も物を云わなかった。雨はいつの間にか強くなって、窓硝子に、砕けた露の球のようなものが見え始めた。自分は閑静な車輛のなかで、先年英国のエドワード帝を葬った時、五千人の卒倒者を出した事などを思い出したりした。 汽車を下りて車に乗った時から、秋の感じはなお強くなった。幌の間
くわしくはこちら group comment
[PR] フロアコーティング (help authorNari) あほ������ ������やろう。 (show struct)
[PR] 蛹サ蟶ォ縲�繧「繝ォ繝舌う繝� Ruby On Editor ホイ # Let's shout "I Love Ruby" class RubyLover def initialize @authorNari = "http://d.hatena.ne.jp/authorNari/" end def shout_love_ruby puts "I Love Ruby" end end
[PR] 消費者金融 金利 サイトについて あとで読むver
[PR] 株式投資 サイトについて あとで見るver
このページを最初にブックマークしてみませんか?
『narihiro.info』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く