[webkit-changes] [WebKit/WebKit] 65023e: [JSC] Clean up JSRopeString::createSubstringOfReso...
Yusuke Suzuki
noreply at github.com
Fri Apr 19 16:57:44 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 65023eebf485cd6787614876915c0afa3da15430
https://github.com/WebKit/WebKit/commit/65023eebf485cd6787614876915c0afa3da15430
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2024-04-19 (Fri, 19 Apr 2024)
Changed paths:
M Source/JavaScriptCore/runtime/JSString.h
M Source/JavaScriptCore/runtime/JSStringInlines.h
Log Message:
-----------
[JSC] Clean up JSRopeString::createSubstringOfResolved
https://bugs.webkit.org/show_bug.cgi?id=273008
rdar://126770852
Reviewed by Alexey Shvayka.
We found that this function is **incredibly** hot, and we need to optimize this very aggressively.
1. Use ASSERT. This length() access is recorded as super hot in the profile.
2. Use is8Bit from the base string directly instead of accessing JSString* base. Overall, let's not
access to JSString* base after allocating a new rope string.
3. Pass length / is8Bit to JSRopeString constructors. Let's not compute this after allocating JSString.
* Source/JavaScriptCore/runtime/JSString.h:
* Source/JavaScriptCore/runtime/JSStringInlines.h:
(JSC::jsSubstringOfResolved):
Canonical link: https://commits.webkit.org/277768@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list