最佳答案
我正在对用node . js和asp.net-core编写的两个hello world项目进行快速压力测试。它们都在生产模式下运行,没有附加记录器。结果是惊人的!ASP。即使在做了一些额外的工作后,NET core的性能也优于node.js应用,而node.js应用只是渲染一个视图。
http://localhost:3000/nodejs
node.js
使用: node.js, express和vash渲染引擎。
这个端点中的代码是
router.get('/', function(req, res, next) {
var vm = {
title: 'Express',
time: new Date()
}
res.render('index', vm);
});
正如你所看到的,它除了通过time
变量将当前日期发送到视图之外什么也不做。
http://localhost:5000/aspnet-core
asp.net core
使用: ASP。NET Core,默认模板,目标dnxcore50
然而,这个应用程序做的事情,而不仅仅是渲染一个页面上的日期。它生成了5段不同的随机文本。理论上这应该比nodejs app重一点。
下面是呈现此页面的操作方法
[ResponseCache(Location = ResponseCacheLocation.None, NoStore = true)]
[Route("aspnet-core")]
public IActionResult Index()
{
var sb = new StringBuilder(1024);
GenerateParagraphs(5, sb);
ViewData["Message"] = sb.ToString();
return View();
}
使用npm install -g recluster-cli && NODE_ENV=production recluster-cli app.js 8
真不敢相信我的眼睛!在这个基本测试中,asp.net core比nodejs快得多,这是不可能的。当然,这不是用来衡量这两种web技术之间性能的唯一指标,但我想知道我在node。js端做错了什么?。
作为一名专业的asp.net开发人员,希望在个人项目中采用node.js,这有点让我望而却步——因为我对性能有点偏执。我认为node.js比asp.net core更快(一般来说-正如在各种其他基准测试中看到的那样),我只是想向自己证明这一点(鼓励自己适应node.js)。
请回复评论,如果你想让我包括更多的代码片段。
< >强更新: .NET Core应用的时间分布
服务器响应
HTTP/1.1 200 OK
Cache-Control: no-store,no-cache
Date: Fri, 12 May 2017 07:46:56 GMT
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
Server: Kestrel