K.Sasada's Home Page

こめんとのついか

こめんとこめんと!

message

please add long comment :).

_31(Sat)

優先順位を上げないといけないのは、あとは何ですかねぇ。


ご飯が無かったので、味噌ラーメンに余ったカレーをかけてみた。

うーん、微妙だ。


うわー、やっちまった。期日を June -> July と間違えた orz


ところで、http://www.namikilab.tuat.ac.jp/~sasada/diary/vote.cgi 12号の人気投票をしています。


しまった。この日記は月が新しくなったときに自動的にページを作る機能を持っていない。

で、2005 年度分は予め作っておいたんだけど、2006 年度分が無い。どうしようかな。


Function Module Instructions Retired samples Clockticks samples Cycles per Retired Instruction - CPI
rb_lastline_set cygruby19.dll 357 315 0.88
strftime cygruby19.dll 309 174 0.56
th_call0 cygruby19.dll 263 152 0.58
thread_dump_regs cygruby19.dll 206 127 0.62
th_eval cygruby19.dll 206 119 0.58
Init_yarvcore cygruby19.dll 175 108 0.62
debug_print_register cygruby19.dll 169 85 0.50
rb_check_type cygruby19.dll 121 105 0.87
native_thread_cleanup cygruby19.dll 80 39 0.49
rb_backref_set cygruby19.dll 71 48 0.68
rb_lastline_get cygruby19.dll 59 42 0.71
thread_eval cygruby19.dll 50 43 0.86
rb_svar cygruby19.dll 33 45 1.36
yarv_backtrace cygruby19.dll 24 68 2.83
yarv_caller cygruby19.dll 18 42 2.33
debug_print_pre cygruby19.dll 11 14 1.27
rb_backref_get cygruby19.dll 11 10 0.91
rb_obj_as_string cygruby19.dll 1 1 1.00
rb_hash_freeze cygruby19.dll 1 0.00
Init_heap cygruby19.dll 1 0.00
rb_parser_append_print cygruby19.dll 2

VTune にコマンドラインインターフェースがあるのを今初めて知った。というわけで、使ってみているんだけれど、とても難しい。

ちなみに、上記は fib(34) を動かしてみた結果。

$ vtl activity -c sampling -app "ruby","-I../yarv/lib ../yarv/benchmark/bmx_temp.rb" run
$ vtl view -hf -mn cygruby19.dll -sum -sort -cd

こんな感じで出力。うーん、わからん。変な結果だなぁ。


色々試したが、DLL のものだと、うまく関数ポインタを得ることが出来ていないような気がする。

というわけで、VTune は miniruby 専用にしておく。

gcc -O0

th_eval miniruby.exe 3267 3060 0.94
th_set_env miniruby.exe 529 598 1.13
eval_method_search miniruby.exe 235 120 0.51
rb_class_of miniruby.exe 146 80 0.55
yarv_get_current_running_thread miniruby.exe 67 90 1.34
rb_check_type miniruby.exe 53 67 1.26
rb_type miniruby.exe 47 90 1.91
memcpy miniruby.exe 1 0.00
rb_newobj miniruby.exe 1 0.00
st_lookup miniruby.exe 1 2 2.00
strhash miniruby.exe 1 0.00
rb_add_method miniruby.exe 1

gcc -O2

th_eval miniruby.exe 2659 1754 0.66
rb_check_type miniruby.exe 129 96 0.74
strhash miniruby.exe 1 1 1.00
rb_node_newnode miniruby.exe 1
rb_set_class_path miniruby.exe 1
set_syserr miniruby.exe 1
st_lookup miniruby.exe 1

hf オプションは hotspot functions で、ha オプションは hotspot address らしい。見たいのは address のような粒度の小さいものだが、しかし address を見ただけではソースコードのどのあたりかわからない。

アドレスからソースコードのファイル名と行番号を得るにはどうすればいいんだろうか。

GUI 版ではやってくれるんだけどなぁ。


どうにも思い浮かばないので(objdump -dl で出来るのかと思ったが、オフセットを得る方法がわからない)、ソースレベルの話は GUI 版を見ることにしよう。


100行くらいのマクロ関数の中でエラーがあると、マクロのどこにエラーがあったのかわからない(一行にまとめられてしまうため)。どうにも、こいつが都合が悪いため、なんとかしたいんだけど、いいアイデアがない。

いっそコピペ?

このでかい奴は自動生成するものなので、各ファイルに細切れに include させるのも手なんだが、呼び出すところで #include って書くのはかっこ悪い(呼び出し側は自動生成ではない)。

マクロの中で #include とはかけない(そりゃそうだ)とか、なんか色々方法を考えてみたんだけど、いい方法は思い浮かばない。うーん。


VTune は、色々調べたが諦め風味。

_青木(Sat Dec 31 14:09:26 JST 2005)

 addr2line


好きなだけ長いコメントをどうぞ。

お名前


back

tton 記述が使えます。YukiWikiな記述してりゃ問題ありません。

「行頭に#code」 と、「行頭に#end」 で挟むと、その間の行は pre で囲まれます。プログラムのソースを書くときに使ってください。

例:

#code

(なんかプログラム書く)

#end

リンクは

[[なまえ|http://www.example.org]]

とか

[[http://www.example.org]]

で貼れます。

$Date: 2003/04/28 10:27:51 $