Sto facendo un rapido stress test su due (ciao) ciao progetti mondiali scritti in node.js e asp.net-core. Entrambi sono in esecuzione in modalità di produzione e senza un logger collegato ad essi. Il risultato è sorprendente! Il core ASP.NET sta superando le prestazioni dell'app node.js anche dopo aver fatto del lavoro extra mentre l'app node.js sta solo eseguendo il rendering di una vista.
App 1: http://localhost:3000/nodejs
node.js
Utilizzando : node.js, motore di rendering espresso e vash.
Il codice in questo endpoint è
router.get('/', function(req, res, next) {
var vm = {
title: 'Express',
time: new Date()
}
res.render('index', vm);
});
Come puoi vedere, non fa nulla a parte l'invio della data corrente tramite la time
variabile alla vista.
App 2: http://localhost:5000/aspnet-core
asp.net core
Utilizzando : ASP.NET Core, targeting modello predefinitodnxcore50
Tuttavia questa app fa qualcosa di diverso dal semplice rendering di una pagina con una data su di essa. Genera 5 paragrafi di vari testi casuali. Questo dovrebbe teoricamente rendere questo un po 'più pesante dell'app nodejs.
Ecco il metodo di azione che rende questa pagina
[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();
}
Risultato del test di stress
Risultato dello stress test dell'app Node.js
Aggiornamento: su suggerimento di Gorgi Kosev
utilizzando npm install -g recluster-cli && NODE_ENV=production recluster-cli app.js 8
Risultato del test di stress dell'app ASP.NET Core
Non posso credere ai miei occhi! Non può essere vero che in questo test di base asp.net core è molto più veloce di nodejs. Ovviamente questa non è l'unica metrica utilizzata per misurare le prestazioni tra queste due tecnologie Web, ma mi chiedo cosa sto facendo di sbagliato nel lato node.js? .
Essendo uno sviluppatore professionista di asp.net e desiderando adattare node.js in progetti personali, questo è un po 'scoraggiante, dato che sono un po' paranoico riguardo alle prestazioni. Ho pensato che node.js sia più veloce del core asp.net (in generale - come visto in vari altri parametri di riferimento) Voglio solo dimostrarlo a me stesso (per incoraggiarmi ad adattare node.js).
Rispondi in commento se desideri che includa più frammenti di codice.
Aggiornamento: distribuzione del tempo dell'app .NET Core
Risposta del server
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