Чому веб-сайт ASP.Net може повільно завантажуватися? [зачинено]


9

Анекдотично, я відвідав багато веб-сайтів .aspx, які потребують значної кількості часу для завантаження кожної сторінки.

Чи унікальний мій досвід?

Якщо ні, то чому веб-сайт ASP.Net може повільно завантажуватися?

Редагувати: Зараз це приблизно через 7 років (29.12.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 # comment43136405_27339997
VnDevil

Відповіді:


22

Я можу придумати п'ять можливостей (окрім деяких сучасних методів кешування та подібних):


Ви не можете розмістити один приклад?
JeffO

1
ViewState також грає роль у цих проблемах.
Ерін

1
1) Іншими словами, ASP.NET використовує більше ресурсів, ніж asp classic?
HK1

1
Я думаю, що ще одна поширена проблема, що не згадується у вашій великій відповіді (або будь-якій іншій відповіді тут), - повільний доступ до бази даних. Я використовував кілька "бюджетних" веб-хостингових компаній (мережеві рішення, не кажучи вже про імена), і у мене були дуже погані повільні спади через доступ до бази даних (SQL Server).
HK1

8

Як мабуть, це може бути гідною відповіддю.

У грі може бути багато факторів. Сайт, який ви використовуєте в цей самий момент, побудований на .NET, і це, як правило, дуже швидко (мінус простої / періоди обслуговування).

Розробники тих сайтів, на які ви переходите, можуть надсилати вам тони даних, або повільні зв’язки, або перевантажені сервери, і т. Д. Тощо. Це також може бути сприйняттям під час гри. Крім того, можливо, шалений javascript під час гри, і ви працюєте з IE? Або спалахнути?


4

Якщо ви насправді не знаєте, чим займаєтесь, ASP.NET WebForms дозволяє вам створити веб-додаток, скинувши елементи керування на форму, навіть переходячи до того, що приховує http безхарактерну природу. Це працює, але така розробка ніколи не створюватиме ефективний код, особливо якщо ваш рівень доступу до даних передбачає генеровані запити, вибираючи все з експрес-бази даних sql без індексів.

Існує безліч швидких веб-сайтів asp.net, розроблених людьми, які розуміють, як реально працюють веб-додатки. Це включає цей сайт - він використовує ASP.NET MVC, який забезпечує набагато більше контролю над обробкою окремих запитів і не показує розширення .aspx.


3

Просто спекуляції тут, як я помітив те саме. Я підозрюю, що .asp-сайти, як правило, (помічайте слово, як правило ), розміщуються на серверах компанії, на відміну від розміщених у або в центрах обробки даних. Тому вони часто працюють на апаратному забезпеченні та підключеннях, не дуже розроблених для швидкісного веб-трафіку. Я підозрюю, що від цього страждають також сайти з холодним синтезом.


2

Коли веб-сайт завантажується (application.start подія), потрібен час, щоб завантажити все в пам'ять. Залежно від налаштувань IIS, приблизно через 20-30 хвилин бездіяльності він завантажиться. Я не натрапив на гідний спосіб постійно працювати з додатком, не роблячи послуг GETкожні 10+ хвилин.

Неправильно сконструйований сервіс / програмування даних може змусити працювати все повільно (незалежно від того, наскільки швидко працює комп'ютер). Профілювання допоможе вам визначити, де проблеми.


1

Ви, безумовно, це собі уявляєте. :)

З будь-яким програмним забезпеченням грає чимало факторів. Архітектура, надмірність потоку коду, якість коду тощо. Занадто багато, щоб навіть почати лістинг.

Ви хочете довести, що ASP корисний для використання на рівні підприємства? Самі веб-сайти (і всі SE) створюються за допомогою ASP.Net, зокрема MVC.

Коли востаннє цей сайт був повільним? Я тут вже більше року, і жодного разу не помічав, як щось накручується, незважаючи на велику базу користувачів.


0

Проглядова стан може дійсно уповільнити поштові повідомлення. Якщо у вас є окремі великі спадні списки на сторінці, ви не повинні використовувати стан перегляду на них.

Viewstate дозволяє зробити вигляд, що ви працюєте над надзвичайним додатком winforms. Це іноді може заважати вам.


0

Все вищезазначене, ймовірно, відповідає дійсності. Найбільшим фактором, що впливає на ефективність роботи сайту ASP.NET, над яким я працював, було те, що все, що стосується цього, було старим. Версія .NET Framework, сервери, інфраструктура баз даних і сам код погано старіли.

Я підозрюю, що багато сайтів ASP.NET, як правило, є корпоративними сайтами. Вони не отримують великої любові, оскільки прагнуть просто працювати . Люди не переписують їх до тих пір, поки не потрібно, що часто дуже довгий час йде вниз.

Я знаю, що сайт, на якому я працював з тим, хто використовував ASP.NET, отримав величезну швидкість, просто перейшовши на новітню версію фреймворку, яка мала набагато ефективніші JITing та розумні кешування за замовчуванням.

Інша річ, що я бачив, що багато сайтів ASP.NET не знають, як правильно масштабувати. У них не встановлено належного балансування навантаження, тому що проектування свого сайту для коректної роботи з веб-садами не є загальним явищем або є добре задокументованим у громаді. Якщо ви не проектуєте веб-сайт для веб-садів з самого початку, ви не можете використовувати вбудований механізм масштабування, який має IIS. Збалансування завантаження програмного забезпечення за допомогою Windows NLB не дуже поширене і його складне управління. (Це суттєво повертається до того, що ASP.NET має тенденцію бути корпоративним програмним забезпеченням і, як правило, керує компанією, яка керує сайтом, а не ІТ-фахівцями, які знають, як правильно налаштувати цей матеріал.)

Збалансування завантаження обладнання за допомогою F5s дуже дороге, але, здається, це найпоширеніший і простий механізм масштабування сайтів ASP.NET в корпоративних мережах. Я думаю, що серед натовпу з відкритим кодом очікується, що ви спочатку будуєте балансування навантаження, використовуючи вільно доступні інструменти з відкритим кодом, які автоматично масштабуються на основі використання. Це не часто зустрічається у світі ASP.NET з того, що я бачив.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.