ทำไมเว็บไซต์ ASP.Net อาจโหลดช้า [ปิด]


9

โดยปกติฉันได้เยี่ยมชมเว็บไซต์. aspx จำนวนมากที่ต้องใช้เวลาโหลดจำนวนมากสำหรับแต่ละหน้า

ประสบการณ์ของฉันมีลักษณะเฉพาะหรือไม่?

ถ้าไม่ทำไมเว็บไซต์ ASP.Net อาจโหลดช้า

แก้ไข:ตอนนี้ประมาณ 7 ปีต่อมา (12/29/2017) ข่าวดีก็คือฉันไม่เห็นปัญหานี้อีกแล้วอาจเป็นเพราะ Google เริ่มลงโทษเว็บไซต์ที่โหลดช้าเกินไป ตอนนี้ฉันใช้ ASP.NET MVC กับผลลัพธ์ที่ดีปัจจุบันทำงานบนเซิร์ฟเวอร์เสมือน Vultr ส่วนตัว (Azure ช้าเกินไปเมื่อเราลองใช้) ผู้กระทำผิดที่เลวร้ายที่สุดที่ฉันเห็นตอนนี้คือระบบ CMS เช่น Wordpress และ Drupal อาจทำงานต่อไป ฮาร์ดแวร์ที่ช้าเกินไปหรือต่ำกว่าปริมาณการรับส่งข้อมูลที่ไซต์ได้รับ -HK1


10
อาจมีหลายปัจจัยในการเล่น ไซต์ที่คุณใช้งานอยู่ขณะนี้สร้างขึ้นบน. NET และโดยทั่วไปแล้วจะรวดเร็วมาก (ลบด้วยช่วงเวลาหยุดทำงาน / ช่วงเวลาการบำรุงรักษา) นักพัฒนาของเว็บไซต์เหล่านั้นอาจผลักดันข้อมูลจำนวนมากให้คุณหรือการเชื่อมต่อที่ช้าหรือเซิร์ฟเวอร์ที่ทำงานหนักเกินไป ฯลฯ ฯลฯ ฯลฯ มันอาจเป็นเรื่องที่เข้าใจได้
wkl

4
@birryree คุณควรเพิ่มความคิดเห็นของคุณเป็นคำตอบเนื่องจากคุณค่อนข้างตอกตะปูบนหัวที่นั่น
อดัมเลียร์

ฉันแก้ไขปัญหานี้ได้ง่ายๆด้วยการโค้ดข้างหลังคุณสามารถตรวจสอบได้ที่นี่: http://stackoverflow.com/questions/27339997/how-to-always-your-warm-up-asp-net-websites-webform-mvc ? noredirect = 1 # ความ
คิดเห็น 43136405_27339997

คำตอบ:


22

ความเป็นไปได้ห้าประการที่ฉันสามารถนึกได้ (นอกเหนือจากเทคนิคการแคชขั้นสูงและอื่น ๆ ):


คุณไม่สามารถไซต์หนึ่งตัวอย่าง
JeffO

1
ViewState ยังมีส่วนร่วมในปัญหาเหล่านี้เช่นกัน
Erin

1
1) กล่าวอีกนัยหนึ่ง ASP.NET ใช้ทรัพยากรมากกว่า asp classic?
HK1

1
ฉันคิดว่าปัญหาทั่วไปอื่นที่ไม่ได้กล่าวถึงในคำตอบที่ดีของคุณ (หรือคำตอบอื่นใดที่นี่) คือการเข้าถึงฐานข้อมูลช้า ฉันใช้ บริษัท เว็บโฮสติ้ง "งบประมาณ" หลายแห่ง (โซลูชันเครือข่ายไม่พูดถึงชื่อใด ๆ ) และมีการชะลอตัวที่แย่มากเนื่องจากการเข้าถึงฐานข้อมูล (SQL Server)
HK1

8

เห็นได้ชัดว่านี่อาจเป็นคำตอบที่คู่ควร

อาจมีหลายปัจจัยในการเล่น ไซต์ที่คุณใช้งานอยู่ขณะนี้สร้างขึ้นบน. NET และโดยทั่วไปแล้วจะรวดเร็วมาก (ลบด้วยช่วงเวลาหยุดทำงาน / ช่วงเวลาการบำรุงรักษา)

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


4

หากคุณไม่รู้จริง ๆ ว่ากำลังทำอะไรอยู่ WebForms ของ ASP.NET จะช่วยให้คุณสร้างแอปพลิเคชันเว็บโดยการวางการควบคุมลงในแบบฟอร์มแม้กระทั่งไปไกลถึงการซ่อนธรรมชาติไร้สัญชาติของ http มันใช้งานได้ แต่การพัฒนาแบบนั้นจะไม่สร้างรหัสที่มีประสิทธิภาพโดยเฉพาะอย่างยิ่งถ้าเลเยอร์การเข้าถึงข้อมูลของคุณเกี่ยวข้องกับการสืบค้นที่สร้างขึ้นโดยเลือกทุกอย่างจากฐานข้อมูล sql express ที่ไม่มีดัชนี

มีเว็บไซต์ asp.net ที่รวดเร็วจำนวนมากที่พัฒนาโดยผู้ที่เข้าใจวิธีการทำงานของเว็บแอปพลิเคชัน ซึ่งรวมถึงไซต์นี้ - มันใช้ ASP.NET MVC ซึ่งให้การควบคุมการจัดการคำขอแต่ละรายการและไม่แสดงนามสกุล. aspx


3

เพียงแค่การเก็งกำไรที่นี่เพราะฉันสังเกตเห็นสิ่งเดียวกัน ฉันสงสัยว่าเว็บไซต์ .asp มีแนวโน้ม (สังเกตคำว่ามีแนวโน้มที่ ) เพื่อเป็นตัวเองบนเซิร์ฟเวอร์ของ บริษัท เมื่อเทียบกับเจ้าภาพที่หรือในศูนย์ข้อมูล ดังนั้นพวกเขาจึงมักทำงานบนฮาร์ดแวร์และการเชื่อมต่อที่ไม่ได้ออกแบบมาเพื่อการรับส่งข้อมูลบนเว็บความเร็วสูง ฉันสงสัยว่าไซต์ที่ถูกขับเคลื่อนด้วยฟิวชั่นเย็นนี้ต้องทนทุกข์ทรมานกับสิ่งนี้


2

เมื่อเว็บไซต์โหลด (เหตุการณ์ application.start) จะต้องใช้เวลาในการโหลดทุกอย่างในหน่วยความจำ ขึ้นอยู่กับการตั้งค่า IIS หลังจากไม่มีกิจกรรมประมาณ 20-30 นาทีก็จะทำการยกเลิกการโหลด ฉันไม่เจอวิธีที่ดีในการทำให้แอปพลิเคชันทำงานอย่างต่อเนื่องโดยไม่ต้องใช้บริการทำGETทุก ๆ 10 นาที

แบ็กเอนด์ / ดาต้าเบสที่ออกแบบมาไม่ดีสามารถทำให้สิ่งต่าง ๆ ทำงานช้า (ไม่ว่าคอมพิวเตอร์จะรันเร็วแค่ไหน) การจัดทำโปรไฟล์จะช่วยคุณระบุว่าปัญหาอยู่ตรงไหน


1

คุณคิดอย่างแน่นอนที่สุดนี้ :)

มีปัจจัยมากมายที่เข้ามาเล่นกับซอฟต์แวร์ใด ๆ สถาปัตยกรรมความซ้ำซ้อนของการไหลของรหัสคุณภาพของรหัส ฯลฯ มากเกินไปที่จะเริ่มรายการ

คุณต้องการพิสูจน์ว่า ASP นั้นดีสำหรับการใช้งานระดับองค์กรหรือไม่ เว็บไซต์ (และ SE ทั้งหมด) เว็บไซต์นี้ทำโดยใช้ ASP.Net - โดยเฉพาะ MVC

เมื่อครั้งสุดท้ายที่ไซต์นี้ช้า ฉันอยู่ที่นี่มานานกว่าหนึ่งปีแล้วและฉันก็ไม่เคยสังเกตเห็นสิ่งต่าง ๆ มาพร้อมกันแม้จะมีฐานผู้ใช้จำนวนมาก


0

viewstate สามารถชะลอ postbacks จริง ๆ หากคุณมีรายการแบบหล่นลงขนาดใหญ่ในหน้าหนึ่งคุณไม่ควรใช้สถานะมุมมอง

viewstate ช่วยให้คุณแกล้งทำเป็นว่าคุณกำลังทำงานกับแอพ winforms ที่สามารถทำให้คุณมีปัญหาบางครั้ง


0

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

ฉันสงสัยว่าไซต์ ASP.NET หลายแห่งมักจะเป็นเว็บไซต์ขององค์กร เหล่านี้ไม่ได้รับความรักมากมายเนื่องจากพวกเขามีแนวโน้มที่จะทำงานเพียง ผู้คนไม่ได้เขียนมันซ้ำอีกจนกว่าพวกเขาจะต้องทำซึ่งมักจะเป็นเวลานานตามถนน

ฉันรู้ว่าไซต์ที่ฉันทำงานด้วยที่ใช้ ASP.NET นั้นมีความเร็วสูงมากเพียงแค่เลื่อนไปยังเฟรมเวิร์กเวอร์ชันใหม่ล่าสุดซึ่งมีค่า JITing และ sane caching ที่มีประสิทธิภาพมากกว่า

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

การปรับสมดุลการโหลดฮาร์ดแวร์ด้วย F5 นั้นมีราคาแพงมาก แต่ดูเหมือนจะเป็นกลไกที่ใช้กันทั่วไปและง่ายที่สุดสำหรับการปรับขนาดไซต์ ASP.NET ภายในเครือข่ายองค์กร ฉันคิดว่าในบรรดาโอเพ่นซอร์สฝูงชนความคาดหวังก็คือคุณสร้างสมดุลในการโหลดตั้งแต่ต้นโดยใช้เครื่องมือโอเพนซอร์สที่มีอิสระซึ่งแยกตามการใช้งานโดยอัตโนมัติ นี่ไม่ใช่เรื่องปกติในโลก ASP.NET จากสิ่งที่ฉันเห็น

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