Je fais un rapide test de stress sur deux (sortes de) projets hello world rédigés en node.js et asp.net-core . Tous deux fonctionnent en mode production et sans enregistreur de données. Le résultat est étonnant ! Le noyau ASP.NET est plus performant que l'application node.js, même après avoir effectué un travail supplémentaire, alors que l'application node.js ne fait que rendre une vue.
App 1 : http://localhost:3000/nodejs
node.js
En utilisant : node.js, moteur de rendu express et vash.
Le code dans ce point final est
router.get('/', function(req, res, next) {
var vm = {
title: 'Express',
time: new Date()
}
res.render('index', vm);
});
Comme vous pouvez le voir, il ne fait rien d'autre que d'envoyer la date du jour via le time
variable à la vue.
App 2 : http://localhost:5000/aspnet-core
asp.net core
En utilisant : ASP.NET Core, ciblage du modèle par défaut dnxcore50
Cependant, cette application fait autre chose que de rendre une page avec une date. Elle génère 5 paragraphes de différents textes aléatoires. Cela devrait théoriquement rendre cette application un peu plus lourde 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
Node.js App résultat du test de stress
Mise à jour : Suivant 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 stress de l'application ASP.NET Core
Je n'en crois pas mes yeux ! Il ne peut pas être vrai que dans ce test de base, le noyau d'asp.net est bien plus rapide que les noeuds. Bien sûr, ce n'est pas la seule mesure utilisée pour évaluer les performances entre ces deux technologies web, mais je me demande qu'est-ce que je fais de mal du côté de node.js ? .
En tant que développeur professionnel d'asp.net et souhaitant adapter node.js dans des projets personnels, cela me met un peu mal à l'aise - car je suis un peu paranoïaque sur la performance. Je pensais que node.js est plus rapide que le noyau asp.net (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'ajoute d'autres extraits de code.
Mise à jour : Répartition du temps 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