2008-05-01から1ヶ月間の記事一覧

わくわくした話(その2)

時間が無いので項目だけ。相変わらずわくわくした結果はないです。 田中二郎先生のComputer Today誌のリフレクションの記事 竹内郁夫先生のbit誌のTaoの記事 Software Tranaction Memory Comet

わくわくした話

コンパイラマクロと型推論のあわせ技で出来る可能性でわくわくしたことから、そういえばこれまでどういったものでわくわくしたかなと思いました。プログラミングに限らず、大きく進歩させる最大の特効薬はわくわくすることじゃないかなと思います。コンピュ…

Rubyで型推論は可能なのか?

ShiroさんのGoogleでのGaucheの講演が非常に面白かったです。http://jp.youtube.com/watch?v=WEBOdWyGE3E中でも将来Gaucheで型推論を行って、コンパイラマクロで利用するという話にわくわくしました。 コンパイラマクロは次のページが詳しくて分かりやすいで…

Rubyのアリーナの覗いてみる

最近、変なRubyの重箱の隅をつつくようなプログラムばっかり作っていますが、その1つです。現状のRubyの実現ではObject#__id__で返される値はオブジェクトのアドレスから作るため、Object#__id__の結果をビットシフトすることでRubyレベルでオブジェクトのア…

minilightのメモリ使用状況を調べてみた

メモリプロファイラを使ってminilightがどうメモリを使っているか調べてみました。あっさり動いたのがびっくりです。FloatやArrayのオブジェクトをがしがし作って必要最低限のもの以外GCで回収される様子が分かります。 ちなみに、これがヒープサイズを細分…

メモリプロファイラ の続き

メモリプロファイルでGCが発生を認識する方法を考えてみました。ファイナライザを使う方法です。 @@gccnt = 0 def MemProf.gchandle lambda {|id| @@gccnt = @@gccnt + 1 GCChecker.new } end class GCChecker def initialize ObjectSpace.define_finalizer(…

メモリプロファイラ

メモリプロファイラを作りたいなと思い、gc.cを眺めていたら、ObjectSpace#count_objectsなるメソッドを見つけました。 irb(main):001:0> ObjectSpace.count_objects => {:TOTAL=>28000, :FREE=>9767, :T_OBJECT=>105, :T_CLASS=>745, :T_ICLASS=>28, :T _MO…

ripperの使い方

どう書く?.orgのお題を解くときにripperの使い方を少し調べたのでメモripperはRubyプログラムの解析を行うためのライブラリです。現在のところ字句解析のみがサポートされています(と思います...)。 Ruby 1.9.0に標準添付されていますが、驚くほどドキュメ…