Javascript engine V8 7.7 release

V8 JavaScript engine has released version 7.7, currently in beta, the official version will be released a few weeks later along with Chrome 77 Stable.

Updates are as follows:

Delayed feedback assignment

To optimize JavaScript, V8 collect feedback on the type of the operand is transmitted to the various data (for example, + or o.foo) operation, this feedback to optimize these operations, make them suitable for these particular types.

Before allocating a feedback vector after in order to reduce memory usage V8 is now performed only some number of bytes in a function code. This avoids a short-term assignment feedback vector function does not benefit from the collected feedback. Experiments show that the feedback delay allocation vector can save about 2-8% of the V8 heap size.

For Chrome users, heap size on the desktop version of V8 reduced 1-2%, 5-6% reduction on a mobile platform. Desktop performance is not backwards, on a mobile platform, seen on low-end phones with limited memory performance is improved.

Scalable WebAssembly background compiler

The following chart is drawn based on a 24-core Xeon machine, it compiles the Epic Zen Garden. According to the number of threads, compared with the V8 version 7.4, less than half the time required to compile.

Stack trace improvements

Almost all errors caused by the V8 in the creation of the stack trace information will be captured. This can be accessed through the JavaScript stack trace from nonstandard error.stack property. Retrieving the first time error.stack stack trace, V8 underlying structure of the sequence into a character string through a stack trace. The sequence of the stack trace is saved to speed up future error.stack access.

This version of the logic stack trace some internal reconstruction (tracking error), and the stack trace simplifies the code sequence of 30 percent performance increase.

JavaScript language features

Providing digital format Intl.NumberFormat API specific locale, access to new features in this version, it now supports compact notation, scientific notation, engineering notation, symbols and units of measurement displayed.

const formatter = new Intl.NumberFormat('en', {
  style: 'unit',
  unit: 'meter-per-second',
});
formatter.format(299792458);
// → '299,792,458 m/s'

For details, see the release notes:

https://v8.dev/blog/v8-release-77

Guess you like

Origin www.oschina.net/news/109069/v8-7-7-released
7.7