Google的Dart团队宣布发布Dart SDK 1.3,该版本改进了异步服务器端代码的性能,Dart虚拟机上的执行效果已经可以与Node.js媲美,而Node.js使用了Google的另一项技术——V8引擎。 Dart提供了一个新的性能页面,通过一个HTTP服务器在三种情况下的每秒请求数、平均延迟和最大延迟绘制了Dart虚拟机和dart:io库的性能表现图。这三种情况是: 根据相应图表,与Dart 1.2相比,在Hello和JSON场景下,Dart服务器可以处理的请求数比原来的两倍还多,而在File场景下,可以处理的请求数也有30%的改进。 Hello和JSON场景,平均延迟也相应下降到了不足原来的一半,File场景则下降了30%。再来看最大延迟,在Hello和JSON场景下,最大延 迟分别在125ms和300ms上下大幅波动,而现在该值稳定在了5ms和7ms。 据Google工程师Anders Johnsen介绍,Dart的服务器端性能是通过分代垃圾收集器得以改进的,减少了在Mac OS和Linux上处理异步I/O的系统调用次数,优化了虚拟机编译器以及dart:core和dart:async中的代码部分。 2013年12月,当时使用的配置与现在不同,TechEmpower基准测试的 成绩是,Dart/nginx每秒处理35 000个JSON请求,而Node.js每秒可以处理70 000个请求。现在Dart可以处理的JSON请求数是原来的两倍多,所以我们可以假定Dart虚拟机的性能达到了Node.js的同等水平。或许未来的 TechEmpower基准测试会证明这一点。根据同一基准测试,使用Google的Go构建的一个简单HTTP服务器以每秒处理215 000个JSON请求的成绩打败了所有框架/平台。 |