ฉันจะปรับปรุงประสิทธิภาพแอปพลิเคชัน ASP.NET MVC ได้อย่างไร


คำตอบ:


311

รายการที่รวบรวมแหล่งที่เป็นไปได้ของการปรับปรุงอยู่ด้านล่าง:

ทั่วไป

  • ใช้ประโยชน์จาก profiler เพื่อค้นหาการรั่วไหลของหน่วยความจำและปัญหาประสิทธิภาพการทำงานในแอปพลิเคชันของคุณ ส่วนตัวฉันแนะนำdotTrace
  • เรียกใช้ไซต์ของคุณในโหมด Release ไม่ใช่โหมด Debug เมื่ออยู่ระหว่างการผลิตและในระหว่างการทำโปรไฟล์ประสิทธิภาพ โหมดการปล่อยเร็วขึ้นมาก โหมดแก้ไขข้อบกพร่องสามารถซ่อนปัญหาด้านประสิทธิภาพในรหัสของคุณเอง

เก็บเอาไว้

  • ใช้การCompiledQuery.Compile() หลีกเลี่ยงการคอมไพล์นิพจน์แบบสอบถามซ้ำ
  • แคชเนื้อหาไม่เปลี่ยนแปลงง่ายต่อการใช้OutputCacheAttribute เพื่อบันทึกที่ไม่จำเป็นและการดำเนินการกระทำ
  • ใช้คุกกี้เพื่อการเข้าถึงข้อมูลที่ไม่อ่อนไหว
  • ใช้ประโยชน์จากETagsและการหมดอายุ - เขียนActionResultวิธีการกำหนดเองของคุณหากจำเป็น
  • พิจารณาใช้RouteNameเพื่อจัดระเบียบเส้นทางของคุณจากนั้นใช้เพื่อสร้างลิงก์ของคุณและพยายามไม่ใช้วิธีนิพจน์แบบทรีของ ActionLink
  • พิจารณาการนำกลยุทธ์การแก้ปัญหาการระบุเส้นทางไปใช้
  • ใส่รหัสซ้ำ ๆ ไว้ในตัวของคุณPartialViewsหลีกเลี่ยงการแสดงมันxxxxครั้ง: หากคุณเรียกส่วนที่เหมือนกัน 300 ครั้งในมุมมองเดียวกันอาจมีบางอย่างผิดปกติ คำอธิบายและมาตรฐาน

เส้นทาง

ความปลอดภัย

  • ใช้การรับรองความถูกต้องของฟอร์มเก็บข้อมูลที่สำคัญที่คุณเข้าถึงบ่อยๆในบัตรรับรองความถูกต้อง

DAL

โหลดบาลานซ์

  • ใช้พร็อกซีย้อนกลับเพื่อกระจายโหลดไคลเอ็นต์ทั่วทั้งอินสแตนซ์แอปของคุณ (Stack Overflow ใช้HAProxy ( MSDN )

  • ใช้Asynchronous Controllersเพื่อใช้งานการกระทำที่ขึ้นอยู่กับการประมวลผลทรัพยากรภายนอก

ด้านลูกค้า

  • เพิ่มประสิทธิภาพด้านลูกค้าของคุณใช้เครื่องมือเช่นYSlowสำหรับคำแนะนำเพื่อปรับปรุงประสิทธิภาพ
  • ใช้ AJAX เพื่ออัปเดตส่วนประกอบของ UI ของคุณหลีกเลี่ยงการอัปเดตทั้งหน้าเมื่อเป็นไปได้
  • พิจารณาใช้สถาปัตยกรรม pub-sub -ie Comet- สำหรับการจัดส่งเนื้อหากับการโหลดซ้ำตามเวลาที่กำหนด
  • ย้ายการสร้างแผนภูมิและตรรกะการสร้างกราฟไปยังฝั่งไคลเอ็นต์ถ้าเป็นไปได้ การสร้างกราฟเป็นกิจกรรมที่มีราคาแพง การเลื่อนไปยังฝั่งไคลเอ็นต์ของคุณจากภาระที่ไม่จำเป็นและอนุญาตให้คุณทำงานกับกราฟในพื้นที่โดยไม่ต้องทำการร้องขอใหม่ (เช่น Flex charting, jqbargraph , MoreJqueryCharts )
  • ใช้ CDN สำหรับสคริปต์และเนื้อหาสื่อเพื่อปรับปรุงการโหลดทางฝั่งไคลเอ็นต์ (เช่นGoogle CDN )
  • Minify - Compile - JavaScript ของคุณเพื่อปรับปรุงขนาดสคริปต์ของคุณ
  • ทำให้คุกกี้มีขนาดเล็กเนื่องจากคุกกี้จะถูกส่งไปยังเซิร์ฟเวอร์ทุกคำขอ
  • พิจารณาการใช้DNS และการดึงข้อมูลลิงก์ล่วงหน้าเมื่อทำได้

การกำหนดค่าทั่วโลก

  • หากคุณใช้มีดโกนให้เพิ่มรหัสต่อไปนี้ใน global.asax.cs ของคุณตามค่าเริ่มต้น Asp.Net MVC จะแสดงผลด้วยเอ็นจิ้น aspx และเอ็นจิ้นมีดโกน สิ่งนี้ใช้ RazorViewEngine เท่านั้น

    ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine());

  • เพิ่ม gzip (การบีบอัด HTTP) และแคชแบบคงที่ (ภาพ, css, ... ) ใน web.config ของคุณ <system.webServer> <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true"/> </system.webServer>

  • ลบโมดูล HTTP ที่ไม่ได้ใช้
  • ล้าง HTML ของคุณทันทีที่สร้างขึ้น (ใน web.config ของคุณ) และปิดใช้งาน viewstate หากคุณไม่ได้ใช้งาน <pages buffer="true" enableViewState="false">

6
รอคุณหมายถึงฉันสูญเสียประสิทธิภาพเมื่อฉันเช่นมีมุมมองที่แสดงชุดผลลัพธ์โดยระคายเคืองผ่าน IList และโทร Render.PartialView ("แถว" รายการ) สำหรับแต่ละรายการ ฉันแพ้มากแค่ไหน? หรือฉันจะวัดประสิทธิภาพได้อย่างไร
marc.d

@SDReyes - ความหมายของสถาปัตยกรรมย่อยผับคืออะไร?
Mohammed Zameer

1
ที่นี่หนาว. แม้ว่าลิงก์ Profiler ของ Uber นั้นตายแล้ว สิ่งนี้ควรเชื่อมโยงกับหนึ่งในโปรไฟล์เฉพาะของ ORM แทนหรือไม่
shanabus

12

คำแนะนำพื้นฐานคือการปฏิบัติตามหลักการ RESTและประเด็นต่อไปนี้เชื่อมโยงหลักการบางอย่างกับกรอบงาน ASP.NET MVC:

  1. ทำให้ตัวควบคุมของคุณไร้สัญชาติ - นี่เป็นคำแนะนำ 'ประสิทธิภาพเว็บ / ความสามารถในการปรับขนาดได้' (ตรงข้ามกับประสิทธิภาพระดับไมโคร / เครื่อง) และการตัดสินใจออกแบบที่สำคัญที่จะส่งผลต่อแอปพลิเคชันของคุณในอนาคต - โดยเฉพาะอย่างยิ่ง ยกตัวอย่างเช่น
    • ห้ามใช้เซสชัน
    • อย่าใช้ tempdata - ซึ่งใช้เซสชัน
    • อย่าพยายาม 'แคช' ทุกอย่าง 'ก่อนกำหนด'
  2. ใช้การรับรองความถูกต้องของฟอร์ม
    • เก็บข้อมูลที่สำคัญที่คุณเข้าถึงบ่อยๆไว้ในบัตรตรวจสอบ
  3. ใช้คุกกี้เพื่อการเข้าถึงข้อมูลที่ไม่อ่อนไหว
  4. ทำให้ทรัพยากรของคุณเข้าถึงได้บนเว็บ
  5. รวบรวม JavaScript ของคุณ มีการปิดห้องสมุดคอมไพเลอร์ที่จะทำเช่นกัน (แน่ใจว่ามีคนอื่น ๆ เพียงแค่ค้นหา 'JavaScript คอมไพเลอร์'เกินไป)
  6. ใช้ CDNs (เครือข่ายการจัดส่งเนื้อหา) - โดยเฉพาะอย่างยิ่งสำหรับไฟล์สื่อขนาดใหญ่ของคุณและอื่น ๆ
  7. พิจารณาที่เก็บข้อมูลประเภทต่าง ๆ สำหรับข้อมูลของคุณตัวอย่างเช่นไฟล์ที่เก็บคีย์ / ค่า ฯลฯ - ไม่ใช่เฉพาะ SQL Server
  8. สุดท้าย แต่ไม่ท้ายสุดทดสอบเว็บไซต์ของคุณเพื่อประสิทธิภาพ

10

Code Climberและรายการบล็อกนี้ให้วิธีการอย่างละเอียดในการเพิ่มประสิทธิภาพของแอปพลิเคชัน

แบบสอบถามที่คอมไพล์จะเพิ่มประสิทธิภาพการทำงานของแอปพลิเคชันของคุณ แต่ไม่มีอะไรเหมือนกันกับ ASP.NET MVC มันจะเพิ่มความเร็วในทุกแอ็พพลิเคชัน db ดังนั้นจึงไม่เกี่ยวกับ MVC


8

สิ่งนี้อาจดูเหมือนชัดเจน แต่เรียกใช้ไซต์ของคุณในโหมด Release ไม่ใช่โหมด Debug เมื่ออยู่ระหว่างการผลิตและในระหว่างการทำโปรไฟล์ประสิทธิภาพ โหมดการเปิดตัวเป็นมากได้เร็วขึ้น โหมดแก้ไขข้อบกพร่องสามารถซ่อนปัญหาด้านประสิทธิภาพในรหัสของคุณเอง


6

เมื่อเข้าถึงข้อมูลผ่าน LINQ ต้องพึ่งพา IQueryable ...

เหตุใดจึงต้องใช้ AsQueryable () แทนที่จะเป็น List ()

... และยกระดับรูปแบบพื้นที่เก็บข้อมูลที่ดี:

การโหลดบันทึกย่อในรูปแบบที่เก็บ

สิ่งนี้จะเพิ่มประสิทธิภาพการเข้าถึงข้อมูลเพื่อให้แน่ใจว่ามีการโหลดข้อมูลที่จำเป็นเท่านั้นและเมื่อจำเป็นเท่านั้น


6

ไม่ได้เป็นการเพิ่มประสิทธิภาพที่ทำให้แผ่นดินไหว แต่ฉันคิดว่าฉันโยนออกนี้มี - ใช้ CDN สำหรับ jQuery ฯลฯ

อ้างจาก ScottGu ตัวเอง: Microsoft Ajax CDNช่วยให้คุณสามารถปรับปรุงประสิทธิภาพของ ASP.NET Web Forms และ ASP.NET MVC applications ที่ใช้ ASP.NET AJAX หรือ jQuery บริการนี้ฟรีไม่ต้องลงทะเบียนใด ๆ และสามารถใช้ได้ทั้งในเชิงพาณิชย์และไม่ใช่เพื่อการค้า

เรายังใช้ CDN สำหรับ webparts ของเราในมอสที่ใช้ jQuery


6

นอกจากนี้หากคุณใช้NHibernateคุณสามารถเปิดและตั้งค่าแคชระดับที่สองเพื่อสอบถามและเพิ่มลงในขอบเขตแบบสอบถามและหมดเวลา และมีเตะตูด Profiler สำหรับEF , L2S และ NHibernate - http://hibernatingrhinos.com/products/UberProf มันจะช่วยในการปรับแต่งแบบสอบถามของคุณ


Ayende บล็อกเมื่อเร็ว ๆ นี้ว่า EF Profiler ช่วยเขาปรับแต่งแอป MVC ตัวอย่างได้อย่างไร: ayende.com/Blog/archive/2010/05/17/…
Frank Schwieterman

5

ฉันจะเพิ่ม:

  1. ใช้สไปรต์ : สไปรท์เป็นสิ่งที่ยอดเยี่ยมในการลดคำขอ คุณรวมภาพทั้งหมดของคุณเป็นภาพเดียวและใช้ CSS เพื่อเป็นส่วนหนึ่งของผีสาง ไมโครซอฟท์ยังมีห้องสมุดที่ดีที่จะทำมัน: สไปรท์และเพิ่มประสิทธิภาพของภาพดูตัวอย่าง 4

  2. แคชวัตถุเซิร์ฟเวอร์ของคุณ : หากคุณมีรายการอ้างอิงหรือข้อมูลที่จะเปลี่ยนแปลงได้ไม่บ่อยนักคุณสามารถแคชข้อมูลเหล่านั้นลงในหน่วยความจำแทนการสืบค้นฐานข้อมูลทุกครั้ง

  3. ใช้ ADO.NET แทน Entity Framework : EF4 or EF5เป็นวิธีที่ดีในการลดเวลาในการพัฒนา แต่จะเจ็บปวดในการปรับให้เหมาะสม การเพิ่มประสิทธิภาพของโพรซีเดอร์ที่เก็บนั้นง่ายกว่า Entity Framework ดังนั้นคุณควรใช้ขั้นตอนการจัดเก็บมากที่สุด Dapper ให้วิธีง่ายๆในการสืบค้นและแมป SQL ด้วยประสิทธิภาพที่ดีมาก

  4. หน้าแคชหรือหน้าบางส่วน : MVC มีตัวกรองแคชหน้าง่ายตามพารามิเตอร์บางตัวใช้งานได้

  5. ลดการเรียกฐานข้อมูล : คุณสามารถสร้างคำขอฐานข้อมูลที่ไม่ซ้ำกันซึ่งส่งกลับวัตถุหลายรายการ ตรวจสอบเว็บไซต์ Dapper

  6. มีสถาปัตยกรรมที่สะอาดอยู่เสมอ : มีสถาปัตยกรรม n-tiers ที่สะอาดแม้ในโครงการขนาดเล็ก มันจะช่วยให้คุณรักษาโค้ดของคุณให้สะอาดและมันจะง่ายขึ้นถ้าปรับให้เหมาะสม

  7. คุณสามารถดูเทมเพลตนี้ "เทมเพลตNeos-SDI MVC " ซึ่งจะสร้างสถาปัตยกรรมที่สะอาดสำหรับคุณด้วยการปรับปรุงประสิทธิภาพเป็นจำนวนมากโดยค่าเริ่มต้น (ตรวจสอบ เว็บไซต์MvcTemplate )


คุณคิดว่าเป็นการดีกว่าหรือไม่ที่จะเรียกใช้กระบวนงานที่เก็บไว้หนึ่งชุดซึ่งส่งกลับชุดผลลัพธ์เพิ่มเติมจากนั้นเรียกใช้กระบวนงานที่เก็บไว้เพิ่มเติมในโหมด async
Muflix

4

นอกจากนี้ทุกข้อมูลที่ดีในการเพิ่มประสิทธิภาพการประยุกต์ใช้ของคุณบนเซิร์ฟเวอร์ด้านผมว่าคุณควรจะดูที่YSlow เป็นทรัพยากรที่ยอดเยี่ยมสำหรับการปรับปรุงประสิทธิภาพของไซต์ในฝั่งไคลเอ็นต์

สิ่งนี้ใช้ได้กับทุกไซต์ไม่ใช่แค่ ASP.NET MVC


3

สิ่งหนึ่งที่ง่ายสุด ๆ คือการคิดแบบอะซิงโครนัสเมื่อเข้าถึงข้อมูลที่คุณต้องการสำหรับหน้า ไม่ว่าจะเป็นการอ่านจากบริการบนเว็บไฟล์ฐานข้อมูลหรืออย่างอื่นให้ใช้โมเดล async ให้มากที่สุด แม้ว่ามันจะไม่ช่วยให้หน้าใดหน้าหนึ่งเร็วขึ้น แต่มันจะช่วยให้เซิร์ฟเวอร์ของคุณทำงานได้โดยรวมดีขึ้น


2

1: รับการกำหนดเวลา จนกว่าคุณจะรู้ว่าการชะลอตัวอยู่ที่ไหนคำถามนั้นกว้างเกินกว่าจะตอบได้ โครงการที่ฉันกำลังดำเนินการมีปัญหาที่แน่นอนนี้ ไม่มีการบันทึกที่จะรู้ว่าต้องใช้เวลานานเท่าใด เราสามารถเดาได้ว่าเป็นส่วนที่ช้าของแอพจนกว่าเราจะเพิ่มการกำหนดเวลาในโครงการ

2: ถ้าคุณมีการดำเนินการตามลำดับอย่ากลัวที่จะ multithread เบา ๆ โดยเฉพาะอย่างยิ่งหากมีการบล็อกการดำเนินงานที่เกี่ยวข้อง PLINQ เป็นเพื่อนของคุณที่นี่

3: จัดเตรียมมุมมอง MVC ของคุณล่วงหน้าเมื่อเผยแพร่ ... ที่จะช่วยให้มี 'การเข้าชมหน้าแรก' บางส่วน

4: บางคนแย้งสำหรับขั้นตอนการจัดเก็บ / ADO ข้อดีของความเร็ว บางคนแย้งว่าความเร็วในการพัฒนาของ EF และการแยกชั้นและวัตถุประสงค์ที่ชัดเจนยิ่งขึ้น ฉันเห็นการออกแบบที่ช้ามากเมื่อ SQL และวิธีแก้ไขปัญหาในการใช้ Sprocs / Views เพื่อดึงข้อมูลและจัดเก็บ นอกจากนี้ความยากในการทดสอบของคุณก็เพิ่มขึ้นเช่นกัน codebase ปัจจุบันของเราที่เราแปลงจาก ADO เป็น EF จะไม่ทำงานแย่ลง (และในบางกรณีดีกว่า) กว่ารุ่น Hand-Rolled แบบเก่า

5: ที่กล่าวว่าคิดเกี่ยวกับการสมัคร Warmup ส่วนหนึ่งของสิ่งที่เราทำเพื่อช่วยขจัดความบกพร่องในการทำงานของ EF ส่วนใหญ่คือการเพิ่มวิธีการอุ่นเครื่องพิเศษ มันไม่ได้คอมไพล์แบบสอบถามหรือสิ่งใด ๆ ล่วงหน้า แต่ช่วยได้มากกับการโหลด / การสร้างข้อมูลเมตา สิ่งนี้มีความสำคัญยิ่งขึ้นเมื่อต้องรับมือกับ Code First models

6: ตามที่คนอื่นพูดอย่าใช้สถานะเซสชันหรือ ViewState ถ้าเป็นไปได้ พวกเขาไม่จำเป็นต้องปรับปรุงประสิทธิภาพที่นักพัฒนาคิด แต่เมื่อคุณเริ่มเขียนเว็บแอปพลิเคชันที่ซับซ้อนมากขึ้นคุณต้องการการตอบสนอง สถานะเซสชันห้ามสิ่งนี้ ลองนึกภาพแบบสอบถามที่ใช้เวลานาน คุณตัดสินใจที่จะเปิดหน้าต่างใหม่และลองใช้หน้าต่างที่ซับซ้อนน้อยกว่า คุณอาจรอสถานะเซสชันเนื่องจากเซิร์ฟเวอร์จะรอจนกว่าการร้องขอแรกจะเสร็จสิ้นก่อนที่จะย้ายไปยังเซสชันถัดไปสำหรับเซสชันนั้น

7: ย่อการเดินทางไปยังฐานข้อมูลให้น้อยที่สุด บันทึกสิ่งที่คุณใช้บ่อย แต่จะไม่เปลี่ยนเป็นแคช. Net ของคุณแบบสมจริง ลองแบตช์แทรก / อัปเดตของคุณหากเป็นไปได้

7.1: หลีกเลี่ยงรหัสการเข้าถึงข้อมูลในมุมมองมีดโกนของคุณโดยไม่มีเหตุผลดี ฉันจะไม่พูดสิ่งนี้ถ้าฉันไม่เห็นมัน พวกเขากำลังเข้าถึงข้อมูลของพวกเขาอยู่แล้วเมื่อรวมโมเดลเข้าด้วยกันทำไมพวกเขาถึงไม่รวมมันไว้ในโมเดล?


2
  1. ใช้ Gzip
  2. ใช้การเรนเดอร์แบบอะซิงโครนัสสำหรับมุมมองบางส่วน
  3. ลดความนิยมของฐานข้อมูล
  4. ใช้แบบสอบถามที่รวบรวม
  5. เรียกใช้โปรแกรมสร้างโปรไฟล์และค้นหาเพลงฮิตที่ไม่จำเป็น ปรับกระบวนการจัดเก็บทั้งหมดให้เหมาะสมซึ่งใช้เวลามากกว่า 1 วินาทีในการตอบกลับ
  6. ใช้แคช
  7. ใช้การเพิ่มประสิทธิภาพการลดขนาดการรวมกลุ่ม
  8. ใช้ยูทิลิตี HTML 5 เช่นเซสชันแคชและที่เก็บข้อมูลในเครื่องสำหรับเนื้อหาแบบอ่านอย่างเดียว

2

แค่อยากจะเพิ่ม 2 เซนต์ของฉัน วิธีที่มีประสิทธิภาพที่สุดในการเพิ่มประสิทธิภาพการสร้างเส้นทาง URL ในแอปพลิเคชัน MVC คือ ... ไม่สร้างขึ้นมาเลย

พวกเราส่วนใหญ่รู้มากขึ้นหรือน้อยลงว่าสร้าง URL ในแอพของเราได้อย่างไรดังนั้นเพียงแค่ใช้สแตติกUrl.Content("~/Blahblah")แทนUrl.Action()หรือUrl.RouteUrl()ที่เป็นไปได้เต้นวิธีอื่นทั้งหมดเกือบ 20 ครั้งและมากกว่านั้น

PS ฉันใช้มาตรฐานซ้ำสองพันรอบแล้วโพสต์ผลลัพธ์ในบล็อกของฉันหากสนใจ


1

ในเสียงโห่ร้องของคุณเพื่อเพิ่มประสิทธิภาพด้านลูกค้าอย่าลืมเกี่ยวกับเลเยอร์ฐานข้อมูล เรามีแอพพลิเคชั่นที่เปลี่ยนจาก 5 วินาทีเพื่อโหลดได้สูงสุด 50 วินาทีในชั่วข้ามคืน

ในการตรวจสอบเราได้ทำการเปลี่ยนแปลงสคีมาทั้งหมด เมื่อเรารีเฟรชสถิติมันก็จะตอบสนองเหมือนเมื่อก่อน


0

ต่อไปนี้เป็นสิ่งที่ต้องทำ

  1. แคชโหมดเคอร์เนล
  2. โหมดไปป์ไลน์
  3. ลบโมดูลที่ไม่ได้ใช้
  4. runAllManagedModulesForAllRequests
  5. อย่าเขียนใน wwwroot
  6. ลบเอ็นจินการดูและภาษาที่ไม่ได้ใช้

0

การใช้ Bundling และ Minification ช่วยให้คุณปรับปรุงประสิทธิภาพได้ โดยทั่วไปจะช่วยลดเวลาในการโหลดหน้า


0

หากคุณกำลังเรียกใช้แอปพลิเคชัน ASP.NET MVC ของคุณบน Microsoft Azure (IaaS หรือ PaaS) ให้ทำอย่างน้อยต่อไปนี้ก่อนการปรับใช้ครั้งแรก

  • สแกนรหัสของคุณด้วยเครื่องวิเคราะห์รหัสแบบคงที่เพื่อดูรหัสหนี้การทำซ้ำความซับซ้อนและความปลอดภัย
  • เปิดใช้งาน Application Insight และตรวจสอบประสิทธิภาพเบราว์เซอร์และการวิเคราะห์อยู่เสมอเพื่อค้นหาปัญหาแบบเรียลไทม์ในแอปพลิเคชัน
  • ติดตั้ง Azure Redis Cache สำหรับข้อมูลการเปลี่ยนแปลงที่เกิดขึ้นบ่อยและน้อยเช่นรูปภาพสินทรัพย์รูปแบบทั่วไปเป็นต้น
  • พึ่งพาเครื่องมือ APM (Application Performance Management) ที่จัดทำโดย Azure
  • ดูแผนที่แอปพลิเคชันบ่อยครั้งเพื่อตรวจสอบประสิทธิภาพการสื่อสารระหว่างส่วนภายในของแอปพลิเคชัน
  • ตรวจสอบประสิทธิภาพฐานข้อมูล / VM เช่นกัน
  • ใช้ตัวโหลดบาลานซ์ (แนวนอนแนวนอน) หากจำเป็นและอยู่ในงบประมาณ
  • หากแอปพลิเคชันของคุณมีกลุ่มเป้าหมายทั่วโลกให้ใช้ Azure Trafic Manager เพื่อจัดการคำขอที่เข้ามาโดยอัตโนมัติและโอนไปยังแอปพลิเคชันที่มีอยู่มากที่สุด
  • ลองทำการตรวจสอบประสิทธิภาพโดยอัตโนมัติโดยการเขียนการแจ้งเตือนตามประสิทธิภาพต่ำ

0

ใช้Task Parallel Library (TPL)เวอร์ชันล่าสุดตามรุ่น. Net ต้องเลือกโมดูลที่ถูกต้องของ TPL เพื่อวัตถุประสงค์ที่แตกต่างกัน


0

ฉันทำทุกคำตอบข้างต้นและมันก็ไม่ได้แก้ปัญหาของฉัน

สุดท้ายผมแก้ปัญหาโหลดเว็บไซต์ของฉันช้ากับการตั้งค่าPrecompileBeforePublishในการเผยแพร่ข้อมูลส่วนตัวเพื่อความจริง หากคุณต้องการใช้msbuildคุณสามารถใช้อาร์กิวเมนต์นี้:

 /p:PrecompileBeforePublish=true

มันช่วยได้มากจริงๆ ตอนนี้ MVC ASP.NET ของฉันโหลดเร็วขึ้น 10 เท่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.