แนวทางปฏิบัติที่ดีที่สุดด้านประสิทธิภาพของ ASP.NET
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-06-30 16:04:02
จัดระเบียบคำแนะนำแนวทางปฏิบัติในการออกแบบเชิงตรรกะ/เชิงกายภาพบนเว็บคาสต์ MSDN: ใช้เพจแบบจำลองสามระดับเชิงตรรกะ (.aspx) และการควบคุมผู้ใช้ (.ascs)
ประเภทที่ใช้ซ้ำได้ (ส่วนประกอบ) จะถูกวางไว้ในไดเร็กทอรี bin ข้อมูลจะถูกวางไว้ในฐานข้อมูล SQL ที่แนะนำ: การออกแบบสำหรับเว็บฟาร์ม
คำแนะนำสถานะเซสชันของ Web Farm: ควรหลีกเลี่ยงการใช้กระบวนการเดียวกัน (เมื่อเป็นไปได้):
การเรียกแบบซิงโครนัสไปยังบริการเว็บ XML โดยใช้บริการเว็บ XML ผ่านการโทรระยะไกลผ่าน DCOM:
การสื่อสารระหว่างแอปพลิเคชันบนอินเทอร์เน็ตไม่ควรใช้สำหรับการสื่อสารภายในแอปพลิเคชัน คำแนะนำ: ใช้เซิร์ฟเวอร์ ISA เมื่อจำเป็นต้องมีโซนความปลอดภัย DMZ:
อนุญาตการเข้าถึงผ่าน ISA เท่านั้น
ISA tunnel ผ่าน DMZ ไปยัง ASP.NET
ลดคำแนะนำในการสลับภาษา/รหัสกระบวนการเพื่อหลีกเลี่ยงการใช้การเชื่อมโยงล่าช้า
<%@ Page Language = "VB" Explicit = "true" %> ต้องมีการประกาศประเภทตัวแปรทั้งหมดและยังคงอนุญาตให้เชื่อมโยงล่าช้า
<%@ Page Language = "VB" strict = "true" %>ห้ามใช้การเชื่อมโยงล่าช้าใดๆ
ขอแนะนำให้ใช้ COM ให้น้อยที่สุดเท่าที่จะเป็นไปได้สำหรับการโต้ตอบ COM และหากต้องการใช้ข้อมูลส่วนประกอบที่มีการจัดการ ขอแนะนำให้จัดเก็บข้อมูลใน SQL Server และเลือกวิธีการเข้าถึงข้อมูลที่เหมาะสม: OLEDB/SQL client/ODBC
เลือก DataSet และ DataReader อย่างสมเหตุสมผลสำหรับการจัดการสถานะการเข้าถึงข้อมูล และเลือกวิธีที่เหมาะสมในการจัดเก็บเซสชัน: Inproc/StateServer/database
ใช้ชนิดข้อมูลอย่างง่ายเพื่อหลีกเลี่ยงการบันทึกออบเจ็กต์ STA ของ STA ในเซสชัน หากไม่จำเป็นต้องใช้เซสชัน ให้ปิดใช้งาน: EnableSessionState = "false"
ถ้าเป็นไปได้ ให้ใช้แอตทริบิวต์แบบอ่านอย่างเดียว: EnableSessionState = "Readonly"
หากไม่จำเป็นต้องใช้ ViewState ให้ปิดการใช้งาน EnableViewState = false
ย่อข้อมูลใน ViewState ดูขนาดของ ViewState ดูซอร์สโค้ดเอาต์พุต HTML หรือเปิดใช้งาน Trace
ใช้แคช แคชเพจ แคชเพจบางส่วน
แคชข้อมูลวัตถุแคช
วิธีการแคช WebService เพื่อวัดปริมาณประสิทธิภาพของเว็บ: เวลาตอบสนองปริมาณงานของเครื่อง ทดสอบโดยการโหลดเซิร์ฟเวอร์ การใช้เครื่องไคลเอนต์หลายเครื่องเพื่อโหลดความเครียดของ Microsoft Web Application ฟรี
ทดสอบหลายสถานการณ์เพื่อจำลองการข้ามผ่านสถานการณ์จากต้นทางถึงปลายทางของไซต์ ทดสอบค่าหน้าเดียวที่ต้องคำนวณ ลูกค้ามาเยี่ยมชมพร้อมกัน)
ระบุโหลดไคลเอ็นต์สูงสุดภายในเวลาตอบสนอง TTFB/TTLB ที่ยอมรับได้ ตัวนับประสิทธิภาพที่สำคัญ โปรเซสเซอร์, การใช้งาน CPU % || ค่าต่ำ = การเปิดเผยหรือการล็อคความขัดแย้ง
ASP.NET จำนวนคำขอที่เข้าคิว || การเติบโตเชิงเส้นหมายความว่าเซิร์ฟเวอร์ถูกโหลดอย่างสมบูรณ์
แอปพลิเคชัน ASP.NET คำขอต่อวินาที||ปริมาณงานแบบไดนามิก (ควรสอดคล้องกัน)
แอปพลิเคชัน ASP.NET จำนวนข้อผิดพลาดทั้งหมด || ระบุข้อผิดพลาดในการทำงาน (ควรเป็น 0)
แอปพลิเคชัน ASP.NET กระบวนการของผู้ปฏิบัติงานรีสตาร์ท || บ่งชี้ถึงข้อผิดพลาดการทำงานที่ร้ายแรง