速さが足りない!!!!! そんな時はプロファイリングの時間ですね。 Rubyには標準添付ライブラリとして profile というプロファイラがついてくる。でもこのライブラリはあまりに遅すぎて実用に耐えないから、多分誰も使っていない。ほとんどのRubyistは ruby-prof を使っていることだろう。 今回はこの ruby-prof を使って Ruby プログラムのプロファイリングする方法を紹介する。 計測する(ruby-prof) ruby-profはrubygemsで簡単に入る。 $ gem install ruby-profruby-profというコマンドラインツールがインストールされる。これを使うと、プログラムを変更することなく手軽にプロファイリングを行うことができる。ruby-profコマンドのusageは以下のとおり。 ruby_prof 0.9.2 Usage: ruby_
ブログ パスワード認証 閲覧するには管理人が設定した パスワードの入力が必要です。 管理人からのメッセージ 閲覧パスワード Copyright © since 1999 FC2 inc. All Rights Reserved.
Rubyの拡張ライブラリと言うと難しそうだが、要するにC++で作った共有ライブラリ(.so)なので デバッグ情報つきでコンパイルすればデバッガーでブレイクポイントで止められるよな、と思ってやってみた。 Ubuntu10.04, デバッガーはkdbg. extconfで$CFLAGSに-gを追加する。注意:C++でもここは$CPPFLAGSではなく$CFLAGS。 $CPPFLAGSの方に指定するとおかしなオプションも一緒に渡される。ここextconf.rbの作りがおかしい。 $CFLAGS = " -g " コンパイルしてm3g.so(私の場合)を作ったらkdbを立ち上げて 「File」-「excecutable」で /usr/bin/ruby を指定。 「Execution」-「Arguments」の「Arguments」タブで引数にデバッグしたいRubyスクリプトを指定。ここでは a.
Perl での print debug の方法の紹介がブーム(?)だったので、自分がよく行ってる Ruby での debug 方法7つについて書いてみます。 p ご存じの人も多い Kernel#p メソッド。これを使うとオブジェクトの内容を見やすい形で出力してくれます。 >> p ({:foobar => :baz}) {:foobar=>:baz}Object#inspect を使うと、p で出力するときと同じ文字列を String として取得できます。 >> puts ({:foobar => :baz}).inspect {:foobar=>:baz}初心者の頃この p での出力を使う方法がわからなくて困った記憶が…。 pp pp というライブラリを使うと、p より、より見やすい形式で出力してくれます。たとえば >> a = Array.new(10) { {:foobar => :
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く