Ich mache einen kurzen Stresstest für zwei (irgendwie) Hallo-Welt-Projekte, in denen geschrieben wurde node.js und asp.net-core. Beide werden im Produktionsmodus und ohne angeschlossenen Logger ausgeführt. Das Ergebnis ist erstaunlich! Der ASP.NET-Kern übertrifft die App node.js auch nach einigen zusätzlichen Arbeiten, während die App node.js nur eine Ansicht rendert.
App 1: http://localhost:3000/nodejs
node.js
Verwenden von : node.js, Express- und Vash-Rendering-Engine.
Der Code in diesem Endpunkt lautet
router.get('/', function(req, res, next) {
var vm = {
title: 'Express',
time: new Date()
}
res.render('index', vm);
});
Wie Sie sehen, wird nichts anderes getan, als das aktuelle Datum über die time
Variable an die Ansicht zu senden .
App 2: http://localhost:5000/aspnet-core
asp.net core
Verwenden von : ASP.NET Core, Standardvorlagen-Targetingdnxcore50
Diese App macht jedoch etwas anderes als nur das Rendern einer Seite mit einem Datum darauf. Es werden 5 Absätze verschiedener zufälliger Texte generiert. Dies sollte theoretisch etwas schwerer machen als die NodeJS-App.
Hier ist die Aktionsmethode, mit der diese Seite gerendert wird
[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();
}
Stresstestergebnis
Node.js App Stresstestergebnis
Update: Auf Vorschlag von Gorgi Kosev
Verwenden von npm install -g recluster-cli && NODE_ENV=production recluster-cli app.js 8
Stresstestergebnis der ASP.NET Core App
Ich kann meinen Augen nicht trauen! Es kann nicht wahr sein, dass der asp.net-Kern in diesem Basistest viel schneller ist als nodejs. Natürlich ist dies nicht die einzige Metrik, mit der die Leistung zwischen diesen beiden Webtechnologien gemessen wird, aber ich frage mich, was ich auf der Seite node.js falsch mache. .
Als professioneller asp.net-Entwickler und der Wunsch, node.js in persönlichen Projekten anzupassen, schreckt mich das irgendwie ab - da ich ein wenig paranoid in Bezug auf Leistung bin. Ich dachte, node.js ist schneller als asp.net core (im Allgemeinen - wie in verschiedenen anderen Benchmarks zu sehen). Ich möchte es nur mir selbst beweisen (um mich bei der Anpassung von node.js zu ermutigen).
Bitte antworten Sie in einem Kommentar, wenn ich weitere Codefragmente hinzufügen soll.
Update: Zeitverteilung der .NET Core App
Serverantwort
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