惊喜!Java为服务器端Web应用带来最高运行速度
在基准测试中,Java基础框架以出色的性能表现傲视群雄——但真正吸引开发人员的因素却并非性能
骨文公司似乎正持续将Java推向各个领域,从“物联网”等新兴领域到传统范畴,而且这一推动并非依靠宣传与炒作。在最近的一项基准测试当中,Java力克众多服务器端Web框架竞争对手、一举拿下最佳性能表现桂冠。不过单靠出色的性能是否足以拉拢非Java技术人员的拥护?
自2013年3月开始,软件开发企业TechEmpower公司已经对当下流行的十多种Web应用程序服务器框架进行过性能基准测试,其中包括Ruby on Rails以及Django。每一轮成功测试在参考发布在GitHub上的开源基准测试之外,还会征求来自技术社区的反馈意见。有兴趣对自己使用的框架进行基准测试的朋友可以利用同样的开源代码亲手进行检验,并将结果提交给该公司。
TechEmpower公司的第七轮基准测试结束于今年十月末——其中包括84套框架以及约200种不同的测试排列——最终结果表明,在各类领域中表现最出色的框架普遍以Java为基。其中最突出的框架有Gemini、Grizzly(旨在使Java的New I/O API更加易用)、Undertow以及Vertx。
更令人惊讶的是,不少知名度极高的框架——例如针对Ruby的Sinatra、各类ASP .Net框架以及针对Python的Django等——在性能表现方面与优胜者相比简直差了一个量级。作为块领域的新贵,Node.js确实带来令人印象深刻的性能表现,但其最终成绩也只达到第一名的四分之一到三分之一。
甲骨文一直在为Java摇旗呐喊,并将其描述为一套可应对各类需求的多合一解决方案(把“各类”换成“全部”可能更为确切)——而其最理想的发挥舞台就是Web服务。甲骨文为Java 8制定的计划包括统一Java各个版本,从而使开发人员能够更轻松地针对不同嵌入式设备及服务器编写代码——如果ARM真的能够入主服务器平台,那么嵌入式设备与服务器之间的界线将更加模糊。另外,Java还得到Avatar项目的有力支持,这是一套JavaScript与HTML 5服务层,旨在让Java能够与Grizzly顺利协作。
如果Grizzly以及其它Java框架同胞的表现确实有这么出色,这是否意味着开发人员都会为之所吸引并尝试将一切利用Java进行重新编写?答案恐怕是否定的。尽管甲骨文很喜欢这种思维方式,但开发人员在选择框架时往往还需要在性能之外考虑多种其它因素——例如易于开发、靠谱的发布时间、开发人员亲和力以及第三分技术社区的参与程度等,这一切都会起到重要的参考作用。随便举个例子:CakePHP在TechEmpower的性能竞赛中表现糟糕,基本上与Codelgniter和Symfony处于同一水平,但PHP及其框架把持着Web领域35%的份额,因此其人气依旧高涨。