checkstack.pl

checkstack.pl

SigSchemeに使用してみた。

ubuntu% ls *.o | xargs objdump -d | perl checkstack.pl   
0x0246 scm_call_with_current_continuation:              188
0x00000726 read_sexpression:                            164
0x00001276 scm_int2string:                              156
0x00000346 format_internal:                             124
0x00002776 scm_expand_macro:                            124
0x00000536 read_symbol:                                 116
0x000023f6 qquote_internal:                             108
0x00002016 transcribe_rec:                              104
0x00c6 scm_load_internal:                               96
0x0146 scm_mb_substring:                                92
0x0196 mbcport_fill_rbuf:                               84

80 byte以上消費する関数を表示させてみた。文字列を扱う為のバッファを持ってる関数は分かるんだが、read_sexpressionなんかはサブルーチンコールが多いのでその為のスタック領域の確保が高くついている(←合ってる?)のかな。まぁ特に最適化出来そうな所は無さそげ。