[#28687] [Bug #2973] rb_bug - Segmentation fault - error.c:213 — rudolf gavlas <redmine@...>

Bug #2973: rb_bug - Segmentation fault - error.c:213

10 messages 2010/03/16

[#28735] [Bug #2982] Ruby tries to link with both openssl and readline — Lucas Nussbaum <redmine@...>

Bug #2982: Ruby tries to link with both openssl and readline

16 messages 2010/03/18

[#28736] [Bug #2983] Ruby (GPLv2 only) tries to link to with readline (now GPLv3) — Lucas Nussbaum <redmine@...>

Bug #2983: Ruby (GPLv2 only) tries to link to with readline (now GPLv3)

10 messages 2010/03/18

[#28907] [Bug #3000] Open SSL Segfaults — Christian Höltje <redmine@...>

Bug #3000: Open SSL Segfaults

19 messages 2010/03/23

[#28924] [Bug #3005] Ruby core dump - [BUG] rb_sys_fail() - errno == 0 — Sebastian YEPES <redmine@...>

Bug #3005: Ruby core dump - [BUG] rb_sys_fail() - errno == 0

10 messages 2010/03/24

[#28954] [Feature #3010] slow require gems in ruby 1.9.1 — Miao Jiang <redmine@...>

Feature #3010: slow require gems in ruby 1.9.1

15 messages 2010/03/24

[#29179] [Bug #3071] Convert rubygems and rdoc to use psych — Aaron Patterson <redmine@...>

Bug #3071: Convert rubygems and rdoc to use psych

10 messages 2010/03/31

[ruby-core:28522] Re: [Feature #905] Add String.new(fixnum) to preallocate large buffer

From: Kurt Stephens <ks@...>
Date: 2010-03-06 00:31:10 UTC
List: ruby-core #28522
Nikolai Weibull wrote:
> On Fri, Mar 5, 2010 at 17:25, Caleb Clausen <vikkous@gmail.com> wrote:
>> On 3/5/10, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
>>> 2010/3/5 Kornelius Kalnbach <murphy@rubychan.de>:
> 
>>>> How big would the buffer size have to be for this template?
>>>>
>>>>  <p><%= link_to @record.name, @record %></p>

I can guarantee the lower bound of output size of this example is 7.  :p

ERB template rendering is one of my greatest performance issues right now.

I routinely have have ERB templates that are over 80K, comprised mostly 
of large static chunks with a small number of dynamic chunks.

For large templates with small substitutions, the cost of reallocation 
during concatenation is the biggest cost, thus preallocating a String 
buffer to lower bound of the result size of 80k is a big time and memory 
saver.

And I am looking at other template engines (e.g. Erubis).

This is a general problem with String concatenation -- ERB is only one 
of the cases -- consider XML generation.  To top it off, String 
concatentation is slower in MRI > 1.8.6.  String objects provides no 
opportunities to give hints about big they will end up.

Low-level problems deserve low-level solutions.

KAS


In This Thread