Closed
Bug 1377489
Opened 7 years ago
Closed 7 years ago
Eliminate a useless copy under FunctionToString
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla56
Tracking | Status | |
---|---|---|
firefox56 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
References
Details
Attachments
(1 file)
4.56 KB,
patch
|
luke
:
review+
|
Details | Diff | Splinter Review |
Noticed this while looking at bug 1377343. Right now we get the function's source code as JSString (including malloc + copying/Latin1-izing chars) then we append this string to a StringBuffer. That's just silly since we can pass a StringBuffer and append directly to that. The attached patch does this. For the micro-benchmark below I get: before: 592 ms after: 435 ms Still a lot of slowness here but it's a decent win. function test() { var s = ""; for (var i = 0; i < 1000; i++) s += "var x = 10;"; var f = Function(s); var t = new Date; for (var i = 0; i < 50000; i++) s = f.toString(); alert(new Date - t); } test();
Attachment #8882603 -
Flags: review?(luke)
Comment 1•7 years ago
|
||
Comment on attachment 8882603 [details] [diff] [review] Patch Review of attachment 8882603 [details] [diff] [review]: ----------------------------------------------------------------- Good observation.
Attachment #8882603 -
Flags: review?(luke) → review+
Pushed by jandemooij@gmail.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/f48357605b40 Eliminate unnecessary string allocation + copy under FunctionToString. r=luke
Comment 3•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/f48357605b40
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
status-firefox56:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
You need to log in
before you can comment on or make changes to this bug.
Description
•