Google JavaScript Engine Speeds JSON Parsing
Written by Kay Ewbank   
Monday, 12 August 2019

The latest update of  V8, Google's JavaScript engine, has been released in beta prior to its final release in coordination with Chrome 76 Stable in several weeks. This version, 7.6, speeds up JSON parsing and adds support for native stack walking.

V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++. It is used in Chrome and in Node.js, and implements ECMAScript and WebAssembly.

v8logo

 

The developers have overhauled the JSON parser to be much faster at scanning and parsing JSON, resulting in parsing of data served by popular web pages being handled up to 2.7 times faster. Until this release, the JSON parser was recursive and used native stack space relative to the nesting depth of the incoming JSON data, so could run out of stack for very deeply nested JSON data. This has been replaced by an iterative parser that manages its own stack and is limited only by available memory. The parser has also been reworked to be more memory-efficient.

The improvements follow other performance upgrades to JSON parsing added in the previous two point releases, 7.4 and 7.5. 7.4 improved the handling of calls with too few or too many parameters, in some cases reducing the call overhead by 60 percent.

Another improvement from 7.4 was a fix to handle large scripts in Chrome better, dealing with UTF-8 decoding and property names more appropriately to provide a combined 18 percent improvement.

With Chrome 75, V8 streams script directly from the network into their streaming parser, rather than waiting for the Chrome main thread. This change improves the performance of JavaScript parsing and reduces the number of concurrent streaming parse tasks, further reducing memory consumption.

Handling of frozen or sealed arrays has also been improved by the addition of a number of JavaScript coding patterns so frozen objects are handled better when called for indexof, includes, and a number of spread calls.

Promise handling has been improved with the addition of promise.allsettled. This provides a signal when all the input promises are either fulfilled or rejected, so settled. The developers say this is useful in cases where you don’t care about the state of the promise, you just want to know when the work is done, regardless of whether it was successful.

Native stack walking support has been added for Windows. Until now, Windows couldn't walk a call stack containing code generated by TurboFan when running on the x64 architecture. V8 can now provide Windows with the metadata it needs be able to walk these stacks on x64, and in v7.6 this is enabled by default.

v8logo

 

More Information

V8 version 7.6

V8 Website

Related Articles

Better ASync From V8 JavaScript Engine

Microsoft To Go Chromium Update: Confirmed

Chromium Team Changes Mind - We Will Have Pointer Events

Chromium Bug Tracker Now Open Source

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on, Twitter, Facebook or Linkedin.

Banner


Too Much Py In PyPI
31/07/2019

There is a move to reduce the amount of code in the Python standard library - to remove the dead or dying batteries. The suggestion is that the PyPI package library could take the strain. New research [ ... ]



MDN Now Built With React
30/07/2019

Mozilla Developer Network, generally referred to as MDN, has been rewritten using React. MDN is Mozilla's multilingual resource for web documentation.


More News

appC

 



 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Monday, 12 August 2019 )