Summary: | String.prototype.toLower should be optimized for 8 bit strings | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Michael Saboff <msaboff> | ||||
Component: | JavaScriptCore | Assignee: | Michael Saboff <msaboff> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | darin | ||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | All | ||||||
OS: | All | ||||||
Attachments: |
|
Description
Michael Saboff
2011-11-25 21:16:03 PST
Created attachment 116647 [details]
Patch
This speeds up sun spider string-tagcloud by 7%.
Comment on attachment 116647 [details]
Patch
Can you put the perf effect in the ChangeLog?
Committed r101187: <http://trac.webkit.org/changeset/101187> This removes the optimization for the case where the string was already all lowercase. It seems we could easily retain that by checking if the result of s.impl()->lower() is == s.impl() and if so, returning JSValue::encode(sVal). (In reply to comment #4) > This removes the optimization for the case where the string was already all lowercase. It seems we could easily retain that by checking if the result of s.impl()->lower() is == s.impl() and if so, returning JSValue::encode(sVal). I had played with this a little and didn't get the return right so it failed some sputnik tests. I just coded up a correct "already lower case" return and will be posting it in another bug. It appears that the fast return is worth maybe a little in sun spider performance (.2ms overall). |