From: m_seki@... Date: 2003-07-16T12:59:21+09:00 Subject: [ruby-list:37884] Re: ERB の仕様 咳といいます。 > [localhost:~]% echo "%% foo <%='bar'%>" | /usr/local/bin/erb > % foo <%='bar'%> > # これ、何の役に立ってるんだろう 何でしょう、ほんとですね。 変換するほうがよさそうですね。 > > sample.erbはどのくらいの大きさですか? > > ここでeRuby スクリプトの大きさといったときに > * ファイルサイズ > * <% %> などの構文要素の数 それぞれどれくらいですか? > の2通りの基準があるのではないかと考えます。私の方でいろいろなファイル > を食べさせてみましたが、速度はあまりファイルサイズには関係なくて、構文 > 要素数によく相関しているように見受けられました。 sample.erb はまさに上 > のワンライナーで生成したものですので、構文要素の割合は非常に高いと思い > ます。ちょっとフェアじゃなかったかもしれません。 私が試した1.2Mのファイルは80%くらいの行に一つ<%=a("foo")%>がある ようなスクリプトです。 あのプロファイラはRubyのプリミティブにかかる時間もちゃんと はかれるのでしたっけ? ruby-1.6.8と1.8.0のインタプリタ違いで速度があれだけちがうと なんとなくrubyが支配する部分が多そうな気がします。 経験的にStringやArrayへの要素の追加は注意ですよね。 Stringに追加する大きさはファイルの大きさに、 Arrayに追加する回数は構文の要素の数に依存しそうです。 また、事前にsplitしてるので、要素数が多いと生成される オブジェクトが増え、GCの時間も増えそうです。