Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JSC] sourceURLStripped should be cached #16516

Conversation

Constellation
Copy link
Member

@Constellation Constellation commented Aug 9, 2023

6fb2754

[JSC] sourceURLStripped should be cached
https://bugs.webkit.org/show_bug.cgi?id=259969
rdar://113616170

Reviewed by Keith Miller.

262420@main introduced sourceURLStripped for error stack URLs. However this is really costly operation,
as a result, it makes error stack string generation slower. JetStream2/chai-wtb is frequently creating
this error stack string, so this is affected by this change by up to 5%.

This patch fixes the above performance issue by caching sourceURLStripped in SourceProvider.

* Source/JavaScriptCore/parser/SourceProvider.cpp:
(JSC::SourceProvider::sourceURLStripped):
* Source/JavaScriptCore/parser/SourceProvider.h:
* Source/JavaScriptCore/runtime/ScriptExecutable.h:
(JSC::ScriptExecutable::sourceURLStripped const):
* Source/JavaScriptCore/runtime/StackFrame.cpp:
(JSC::processSourceURL):
(JSC::StackFrame::sourceURL const):
(JSC::StackFrame::sourceURLStripped const):

Canonical link: https://commits.webkit.org/266728@main

72a0905

Misc iOS, tvOS & watchOS macOS Linux Windows
βœ… πŸ§ͺ style βœ… πŸ›  ios βœ… πŸ›  mac βœ… πŸ›  wpe βœ… πŸ›  wincairo
βœ… πŸ›  ios-sim βœ… πŸ›  mac-AS-debug βœ… πŸ§ͺ wpe-wk2
βœ… πŸ§ͺ webkitperl βœ… πŸ§ͺ ios-wk2 βœ… πŸ§ͺ api-mac βœ… πŸ›  gtk
βœ… πŸ§ͺ ios-wk2-wpt βœ… πŸ§ͺ mac-wk1 βœ… πŸ§ͺ gtk-wk2
βœ… πŸ›  πŸ§ͺ jsc βœ… πŸ§ͺ api-ios βœ… πŸ§ͺ mac-wk2 βœ… πŸ§ͺ api-gtk
βœ… πŸ›  πŸ§ͺ jsc-arm64 βœ… πŸ›  tv   πŸ§ͺ mac-AS-debug-wk2 βœ… πŸ›  jsc-armv7
βœ… πŸ›  tv-sim βœ… πŸ§ͺ jsc-armv7-tests
βœ… πŸ›  watch βœ… πŸ›  jsc-mips
βœ… πŸ›  πŸ§ͺ unsafe-merge βœ… πŸ›  watch-sim βœ… πŸ§ͺ jsc-mips-tests

@Constellation Constellation requested a review from a team as a code owner August 9, 2023 08:33
@Constellation Constellation self-assigned this Aug 9, 2023
@Constellation Constellation added the JavaScriptCore For bugs in JavaScriptCore, the JS engine used by WebKit, other than kxmlcore issues. label Aug 9, 2023
Copy link
Contributor

@kmiller68 kmiller68 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r=me.

@Constellation Constellation added the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label Aug 9, 2023
https://bugs.webkit.org/show_bug.cgi?id=259969
rdar://113616170

Reviewed by Keith Miller.

262420@main introduced sourceURLStripped for error stack URLs. However this is really costly operation,
as a result, it makes error stack string generation slower. JetStream2/chai-wtb is frequently creating
this error stack string, so this is affected by this change by up to 5%.

This patch fixes the above performance issue by caching sourceURLStripped in SourceProvider.

* Source/JavaScriptCore/parser/SourceProvider.cpp:
(JSC::SourceProvider::sourceURLStripped):
* Source/JavaScriptCore/parser/SourceProvider.h:
* Source/JavaScriptCore/runtime/ScriptExecutable.h:
(JSC::ScriptExecutable::sourceURLStripped const):
* Source/JavaScriptCore/runtime/StackFrame.cpp:
(JSC::processSourceURL):
(JSC::StackFrame::sourceURL const):
(JSC::StackFrame::sourceURLStripped const):

Canonical link: https://commits.webkit.org/266728@main
@webkit-commit-queue webkit-commit-queue force-pushed the eng/JSC-sourceURLStripped-should-be-cached branch from 72a0905 to 6fb2754 Compare August 9, 2023 15:45
@webkit-commit-queue
Copy link
Collaborator

Committed 266728@main (6fb2754): https://commits.webkit.org/266728@main

Reviewed commits have been landed. Closing PR #16516 and removing active labels.

@webkit-commit-queue webkit-commit-queue merged commit 6fb2754 into WebKit:main Aug 9, 2023
@webkit-commit-queue webkit-commit-queue removed the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label Aug 9, 2023
@Constellation Constellation deleted the eng/JSC-sourceURLStripped-should-be-cached branch August 9, 2023 16:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
JavaScriptCore For bugs in JavaScriptCore, the JS engine used by WebKit, other than kxmlcore issues.
Projects
None yet
4 participants