Rubyの実装に疑問あり!
■ このスレッドは過去ログ倉庫に格納されています
0620matz曰く(一部略)
NGNG問い:Rubyの'eval'関数は一つの大きな'switch'文で実現されているようですが
パーフォーマンスへの影響は出ますか?
答え:関数ポインタを構文木に埋め込む(threaded code)手法を試験的に実装したことがありますが、
結果は期待したほどパフォーマンスが改善せず、かえって若干悪化しました。
この理由は、おそらく最近のCコンパイラではswitch文での分岐は十分に高速化されており、
ポインタを経由した関数呼び出しにともなうスタック操作のコストの方が
高かったからではないかと推測しています。
■ このスレッドは過去ログ倉庫に格納されています