Yazılan iki (merhaba) merhaba dünya projesinde hızlı bir stres testi yapıyorum node.js ve asp.net çekirdekli. Her ikisi de üretim modunda ve bunlara bağlı bir kaydedici olmadan çalışıyor. Sonuç şaşırtıcı! ASP.NET çekirdeği bazı ekstra işler yaptıktan sonra bile node.js uygulamasından daha iyi performans gösterirken, node.js uygulaması yalnızca bir görünüm oluşturuyor.
Uygulama 1: http://localhost:3000/nodejs
node.js
Kullanarak : node.js, ekspres ve vash oluşturma motoru.
Bu bitiş noktasındaki kod:
router.get('/', function(req, res, next) {
var vm = {
title: 'Express',
time: new Date()
}
res.render('index', vm);
});
Gördüğünüz gibi, mevcut tarihi time
değişken üzerinden görünüme göndermek dışında hiçbir şey yapmaz .
Uygulama 2: http://localhost:5000/aspnet-core
asp.net core
Kullanılıyor : ASP.NET Core, varsayılan şablon hedeflemednxcore50
Ancak bu uygulama, üzerinde tarih bulunan bir sayfa oluşturmaktan başka bir şey yapmaz. Çeşitli rastgele metinlerden 5 paragraf oluşturur. Bu teorik olarak bu düğümü nodejs uygulamasından biraz daha ağır hale getirmelidir.
İşte bu sayfayı oluşturan işlem yöntemi
[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();
}
Stres testi sonucu
Node.js Uygulama stres testi sonucu
Güncelleme: Gorgi Kosev'in önerisini takiben
kullanma npm install -g recluster-cli && NODE_ENV=production recluster-cli app.js 8
ASP.NET Core App stres testi sonucu
Gözlerime inanamıyorum! Bu temel testte asp.net çekirdeğinin nodejs'den çok daha hızlı olduğu doğru olamaz. Tabii ki bu iki web teknolojisi arasındaki performansı ölçmek için kullanılan tek metrik değil, ama node.js tarafında neyi yanlış yaptığımı merak ediyorum? .
Profesyonel bir asp.net geliştiricisi olmak ve node.js'yi kişisel projelere uyarlamak isteyen bu, beni biraz rahatsız ediyor - performans hakkında biraz paranoyak olduğum için. Node.js'nin asp.net çekirdeğinden daha hızlı olduğunu düşündüm (genel olarak - diğer çeşitli kriterlerde görüldüğü gibi) Sadece kendime kanıtlamak istiyorum (node.js'yi uyarlamaya teşvik etmek için).
Daha fazla kod snippet'i eklememi istiyorsanız lütfen yorum olarak yanıtlayın.
Güncelleştirme: .NET Core uygulamasının zaman dağılımı
Sunucu cevabı
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