An updated version of the Google Dart SDK brings performance of the Dart VM to that of Node.js. It is claimed new version is twice as fast as its predecessor for asynchronous Dart code combined with server-side I/O operations.
According to the announcement about the new version on the Chrome blog, Anders Johnsen, “Speed Obsessed Software Engineer” said
“This puts Dart in the same league as popular server-side runtimes and allows you to build high-performance server- side Dart VM apps.”
The team measured request-per-second improvements using three simple HTTP benchmarks: Hello, File, and JSON. Hello, which improved by 130%, provides a measure for how many basic connections an HTTP server can handle, by simply measuring an HTTP server responding with a fixed string.
The File benchmark, which simulates the server accessing and serving static content, improved by nearly 30%.
The JSON benchmark acts as a proxy for performance of REST apps, and it showed an improvement of nearly double the throughput.
The data for the chart above was collected on a Ubuntu 12.04.4 LTS machine with 8GB RAM and a Intel(R) Core(TM) i5-2400 CPU, running a single-isolate server on Dart VM version 1.1.3, 1.2.0 and 1.3.0-dev.7.5.
Johnsen says that the improvements came from a combination of changes. The HTTP stack, which is written in Dart, was reworked to take advantage of the Dart VM's generational garbage collector. On Linux and Mac the team reduced the number of required system calls for asynchronous I/O, which significantly reduced I/O latency.
Some server-side applications were profiled by the team, who identified missing optimization opportunities in the Dart VM's optimizing compiler.
The VM team also tuned the compiler (for example, inlining strategies and closure calls) for more efficient asynchronous Dart code.Profiling was also used to identify elements in dart:core and dart:async that were sub-optimal.
In addition to the performance changes, the Dart Editor has been improved, with support for Angular code completions and improved Angular analysis and refactoring support. There’s a new Write HTTP Clients and Servers tutorial that shows how to build a web server with Dart, and a programmer's guide to command-line apps with Dart. The latest stable release of Dart is also available for download.