ฉันกำลังทำแบบทดสอบความเครียดฉบับย่อเกี่ยวกับโครงการสวัสดีชาวโลกสองโครงการ Node.js และ asp.net-core. ทั้งสองกำลังทำงานในโหมดการผลิตและไม่มีคนตัดไม้ที่แนบมากับพวกเขา ผลที่ได้คือน่าอัศจรรย์! ASP.NET core นั้นมีประสิทธิภาพที่เหนือกว่าแอป node.js แม้หลังจากทำงานพิเศษบางอย่างแล้วในขณะที่แอป node.js ก็แค่แสดงผลมุมมอง
แอพ 1: http://localhost:3000/nodejs
node.js
การใช้ : node.js, เอ็นจิ้นการแสดงผลด่วนและ vash
รหัสในจุดสิ้นสุดนี้คือ
router.get('/', function(req, res, next) {
var vm = {
title: 'Express',
time: new Date()
}
res.render('index', vm);
});
อย่างที่คุณเห็นมันไม่ทำอะไรเลยนอกจากการส่งวันที่ปัจจุบันผ่านtime
ตัวแปรไปยังมุมมอง
แอพ 2: http://localhost:5000/aspnet-core
asp.net core
การใช้ : ASP.NET Core การกำหนดเป้าหมายเทมเพลตเริ่มต้นdnxcore50
อย่างไรก็ตามแอพนี้ทำสิ่งอื่นที่ไม่ใช่แค่แสดงหน้าเว็บที่มีวันที่อยู่ มันสร้างข้อความสุ่มต่าง ๆ 5 ย่อหน้า ในทางทฤษฎีแล้วควรทำให้หนักกว่าแอพ nodejs เล็กน้อย
นี่คือวิธีการกระทำที่แสดงหน้านี้
[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();
}
ผลการทดสอบความเครียด
ผลการทดสอบความเค้นของแอป Node.js
อัปเดต: คำแนะนำต่อไปนี้โดย Gorgi Kosev
การใช้ npm install -g recluster-cli && NODE_ENV=production recluster-cli app.js 8
ผลการทดสอบความเค้น ASP.NET Core App
ไม่อยากเชื่อสายตาของฉัน! ไม่เป็นความจริงเลยที่ core asp.net ในการทดสอบพื้นฐานนี้จะเร็วกว่า nodejs แน่นอนว่านี่ไม่ใช่ตัวชี้วัดเดียวที่ใช้ในการวัดประสิทธิภาพระหว่างเทคโนโลยีเว็บทั้งสองนี้ แต่ฉันสงสัยว่าฉันกำลังทำอะไรผิดในทางด้าน node.js? .
การเป็นนักพัฒนา asp.net มืออาชีพและต้องการปรับเปลี่ยน node.js ในโครงการส่วนบุคคลนี่เป็นสิ่งที่ทำให้ฉันเลิกเพราะฉันเป็นคนหวาดระแวงเล็กน้อยเกี่ยวกับประสิทธิภาพ ฉันคิดว่า node.js เร็วกว่าแกน asp.net (โดยทั่วไป - ตามที่เห็นในมาตรฐานอื่น ๆ ) ฉันแค่ต้องการพิสูจน์ให้ตัวเอง (เพื่อส่งเสริมตัวเองในการปรับเปลี่ยน node.js)
โปรดตอบในความคิดเห็นหากคุณต้องการให้ฉันใส่ข้อมูลโค้ดเพิ่มเติม
อัปเดต: การกระจายเวลาของแอป. NET Core
การตอบสนองของเซิร์ฟเวอร์
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