2006-01-28から1日間の記事一覧

write barrier

9 Generational GC (中略) さて、Schemeにおいて、ユーザプログラムがconsやvectorのみを用いる限り、旧→新のポインタは決して生まれない。 Set-car!などの破壊的代入を行なって初めて生じるものである。コンパイラが、破壊的代入の際に必ずGCに知らせる(書…

カプセル化の目的

『猪股健太郎の雑記』より. Hejlsberg: Microsoftでの以前の仕事では、WindowsフォームAPIの設計にも関わっていた。そしてそこでは、例えば、裏に隠れたウィンドウハンドルを得たり、単にUser32.dllの関数を直接呼び出したりできる脱出口もあった。だって時…

メモリ管理コスト

C++ と DirectX でシューティングゲーム作っていたときに,VTune のプロファイリングによってメモリ周り(new/delete)で全CPU時間の20%ぐらい食っていることが分かったときにはかなりびっくりしたなぁと遠い目.だいぶヒープを苛め抜く(ようするに何も考えて…

LUA 5.1 の GC

『毒々マンボウ後悔記』より. Lua 側では本当にメモリの確保時も解放時もヒープに関しては考慮してない。即座に確保*3、即座に解放。てっきり Lua 内部でもちっこいメモリはプールするくらいのことはやってるモンだと思ってたから意外だった。まあ、下手な…