• ベストアンサー

rubyは処理が遅い??

rubyを使ってプログラミングをしています。変数の型宣言などしなくてよいので便利なのですがやはりCなどに比べると実行速度は遅くなるのでしょうか?(インタプリタなので一概には比較できませんが…) もしそうなら具体的にはrubyのどのような機能が処理を遅くさせているのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2

>構文解析時ではなくて実行時に処理しなくてはならないこととは具体的にはどんなことでしょうか? 一番大変なのは,aという名前の変数の参照や,funcという名前の関数呼び出しがあったときに,実際にどの変数をさしたり,関数を呼び出すのかの決定でしょう(名前空間の探索). rubyは,コンテキストによって名前の隠蔽が起こったり,名前空間の探索順が違ったりするので,この処理はけっこう大変なんです.

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

perlやpython等,最近のスクリプト言語は,仮想マシンの言語にコンパイルしてから実行する形を取っているものが多いのですが,rubyは(公式の実装)は,本当にインタプリタとして実装されています.つまり,構文解析の結果をその場で順番に実行しています.なんで,(他のスクリプト言語と比較しても)rubyは遅いって言われることがけっこうあります. それから,rubyは,言語仕様がかなり自由にできているので,構文解析時ではなくて,実行時に処理しなければいけないことがかなり多いです.

mamoko7
質問者

お礼

なるほど、ありがとうございます。構文解析時ではなくて実行時に処理しなくてはならないこととは具体的にはどんなことでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A