Je fais un test de stress rapide sur deux (un peu) projets Hello World écrits en node.js et asp.net-core. Les deux fonctionnent en mode production et sans enregistreur qui leur est attaché. Le résultat est étonnant! ASP.NET Core surpasse l'application node.js même après avoir effectué un travail supplémentaire, tandis que l'application node.js ne fait que restituer une vue.
Application 1: http://localhost:3000/nodejs
node.js
Utilisation : node.js, moteur de rendu express et vash.
Le code de ce point de terminaison est
router.get('/', function(req, res, next) {
var vm = {
title: 'Express',
time: new Date()
}
res.render('index', vm);
});
Comme vous pouvez le voir, cela ne fait rien à part l'envoi de la date actuelle via la time
variable à la vue.
App 2: http://localhost:5000/aspnet-core
asp.net core
Utilisation : ASP.NET Core, ciblage par modèle par défautdnxcore50
Cependant, cette application fait autre chose que le simple rendu d'une page avec une date. Il génère 5 paragraphes de différents textes aléatoires. Cela devrait théoriquement rendre cela un peu plus lourd que l'application nodejs.
Voici la méthode d'action qui rend cette page
[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();
}
Résultat du test de stress
Résultat du test de résistance de l'application Node.js
Mise à jour: Suite à la suggestion de Gorgi Kosev
En utilisant npm install -g recluster-cli && NODE_ENV=production recluster-cli app.js 8
Résultat du test de résistance de l'application ASP.NET Core
Je ne peux pas en croire mes yeux! Il ne peut pas être vrai que dans ce test de base, asp.net core est bien plus rapide que nodejs. Bien sûr, ce n'est pas la seule métrique utilisée pour mesurer les performances entre ces deux technologies Web, mais je me demande ce que je fais de mal du côté de node.js? .
En tant que développeur professionnel asp.net et souhaitant adapter node.js dans des projets personnels, cela me décourage - car je suis un peu paranoïaque sur la performance. Je pensais que node.js est plus rapide que asp.net core (en général - comme on le voit dans divers autres benchmarks), je veux juste me le prouver (pour m'encourager à adapter node.js).
Veuillez répondre en commentaire si vous souhaitez que j'inclue plus d'extraits de code.
Mise à jour: distribution temporelle de l'application .NET Core
Réponse du serveur
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