Я делаю быстрый стресс-тест на двух (вроде) проектах Hello World, написанных на Node.js и asp.net-жильный, Оба они работают в производственном режиме и без подключенного к ним регистратора. Результат потрясающий! Ядро ASP.NET превосходит приложение node.js даже после выполнения некоторой дополнительной работы, тогда как приложение node.js просто отображает представление.
Приложение 1: http://localhost:3000/nodejs
node.js
Использование : node.js, экспресс и движок рендеринга vash.
Код в этой конечной точке
router.get('/', function(req, res, next) {
var vm = {
title: 'Express',
time: new Date()
}
res.render('index', vm);
});
Как видите, он ничего не делает, кроме отправки текущей даты через time
переменную в представление.
Приложение 2: http://localhost:5000/aspnet-core
asp.net core
Использование : ASP.NET Core, таргетинг на шаблоны по умолчаниюdnxcore50
Тем не менее, это приложение делает что-то другое, чем просто рендеринг страницы с датой на нем. Он генерирует 5 абзацев различных случайных текстов. Теоретически это должно сделать его немного тяжелее, чем приложение nodejs.
Вот метод действия, который рендерит эту страницу
[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();
}
Результат стресс-теста
Результат стресс-теста приложения Node.js
Обновление: по предложению Горги Косева
С помощью npm install -g recluster-cli && NODE_ENV=production recluster-cli app.js 8
Результат стресс-теста ASP.NET Core App
Не могу поверить своим глазам! Не может быть правдой, что в этом базовом тесте ядро asp.net работает намного быстрее, чем nodejs. Конечно, это не единственный показатель, используемый для измерения производительности между этими двумя веб-технологиями, но мне интересно, что я делаю неправильно на стороне node.js? ,
Будучи профессиональным разработчиком asp.net и желая адаптировать node.js в личных проектах, это отчасти отталкивает меня, поскольку я немного параноидален в отношении производительности. Я думал, что node.js быстрее, чем ядро asp.net (в целом - как видно из различных других тестов), я просто хочу доказать это самому себе (чтобы поощрить себя в адаптации 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