[webkit-dev] Slow idioms with WTF::String

Rob Buis rwlbuis at gmail.com
Tue Jul 12 16:16:24 PDT 2011


Hi Yong,

On 12 July 2011 18:10, Yong Li <yong.li.webkit at gmail.com> wrote:
> Another slow case is converting a const C string to WTF::String every
> time. For example,
>
>    return (m_httpHeaderFields.contains("If-Match") ||
>            m_httpHeaderFields.contains("If-Modified-Since") ||
>            m_httpHeaderFields.contains("If-None-Match") ||
>            m_httpHeaderFields.contains("If-Range") ||
>            m_httpHeaderFields.contains("If-Unmodified-Since"));
>
> This function creates 5 Strings (calls fastMalloc 5 times), and also
> calculates the hash key 5 times, and then throws them away.

In this case, the code already indicates it is not optimal:

HTTPHeaderMap.h:
// Alternate accessors that are faster than converting the char* to
AtomicString first.
bool contains(const char*) const;

Also this converting can probably be fixed by using
DEFINE_STATIC_LOCAL(AtomicString,...).
Cheers,

Rob.


More information about the webkit-dev mailing list