Speed
Jank Busters III hit the shelves as part of the Orinoco project. Concurrent marking (70-80% of marking is done on a non-blocking thread) is shipped.The parser now does not need to preparse a function a second time. This translates to a 14 % median improvement in parse time on our internal startup top25 benchmark.
string.js
has been completely ported to CodeStubAssembler. Thanks a lot to @peterwmwong for his awesome contributions! As a developer this means that builtin string functions like String#trim
are a lot faster starting with 6.3.Object.is()
's performance is now roughly on-par with alternatives. In general, 6.3 continues the path to better the ES2015+ performance. Beside other items we boosted the speed of polymorphic access to symbols, polymorphic inlining of constructor calls and (tagged) template literals. ![]() |
V8's performance over the past six releases |
Weak optimized function list is gone. More information can be found in the dedicated blog post.
The mentioned items are a non-exhaustive list of speed improvements. Lot's of other performance-related work has happened.
Memory consumption
Write barriers are switched over to using the CodeStubAssembler. This saves around 100kb of memory per isolate.ECMAScript language features
V8 shipped the following stage 3 features: Dynamic module import viaimport()
, Promise.prototype.finally()
and async iterators/generators.With dynamic module import it is very straightforward to import modules based on runtime conditions. This comes in handy when an application should lazy-load certain code modules.
Promise.prototype.finally
introduces a way to easily clean up after a promise is settled.Iterating with async functions got more ergonomic with the introduction of async iterators/generators.
Inspector/Debugging
In Chrome 63 block coverage is also supported in the DevTools UI. Please note that the inspector protocol already supports block coverage since V8 6.2.V8 API
Please check out our summary of API changes. This document is regularly updated a few weeks after each major release.Developers with an active V8 checkout can use git checkout -b 6.3 -t branch-heads/6.3 to experiment with the new features in V8 6.3. Alternatively you can subscribe to Chrome’s Beta channel and try the new features out yourself soon.
Posted by the V8 team
Keep up the great job guys!
ReplyDeleteAwesome feature, Promise.prototype.finally
ReplyDelete