[webkit-dev] improving String::append()

Maciej Stachowiak mjs at apple.com
Thu Dec 3 10:01:42 PST 2009


On Dec 3, 2009, at 8:32 AM, Zoltan Herczeg wrote:

> Hi,
>
> according to my measurements, a large chunk of WebKit memory  
> consumption
> comes from WebCore::TextResourceDecoder::decode
> (loader/TextResourceDecoder.cpp:818) which calls String::append
> (String.cpp:82). The comment there says:
>
>  // FIXME: This is extremely inefficient.
>
> I would volunteer to rewrite the code (especially reducing the memory
> consumption), but first, I would like to hear your opinion how can  
> we make
> the string handling of WebKit better.

I believe the inefficiency there is speed, not space. Vector<UChar> or  
StringBuilder as an alternative would reduce potential for excess  
reallocation but I don't think they would reduce memory use. In fact  
memory use may go up. (As a side note I was unable to find the  
String::append call in TextResourceDecoder.

I think a lot of memory use is blamed on the decoder because we keep  
around a decoded copy of every text-based subresource.  In theory we  
could drop the decoded version under memory pressure since it can be  
re-decoded from the original data on demand.

Regards,
Maciej



More information about the webkit-dev mailing list