Mengapa situs web ASP.Net bisa memuat dengan lambat? [Tutup]

9

Secara anekdot, saya telah mengunjungi banyak situs web .aspx yang memerlukan waktu buka yang signifikan untuk setiap halaman.

Apakah pengalaman saya unik?

Jika tidak, mengapa situs web ASP.Net dapat dimuat dengan lambat?

Sunting: Sekarang sekitar 7 tahun kemudian (29/12/2017). Berita baiknya adalah saya tidak melihat masalah ini lagi, mungkin karena Google mulai menghukum situs yang memuat terlalu lambat. Saya sekarang menggunakan ASP.NET MVC dengan hasil yang baik, saat ini berjalan di server virtual pribadi Vultr (Azure terlalu lambat ketika kami mencobanya.) Beberapa pelanggar terburuk yang saya lihat sekarang adalah sistem CMS seperti Wordpress dan Drupal, mungkin berjalan di perangkat keras yang terlalu lambat atau kurang dihargai untuk jumlah lalu lintas yang didapat situs. -HK1

HK1
sumber
10
Bisa jadi banyak faktor yang berperan. Situs yang Anda gunakan saat ini dibangun di .NET, dan biasanya sangat cepat (dikurangi waktu henti / periode pemeliharaan). Pengembang situs-situs itu mungkin mendorong banyak data kepada Anda, atau memperlambat koneksi, atau server kelebihan beban, dll. Dll. Ini juga bisa menjadi persepsi yang berperan.
wkl
4
@Birryree Anda harus menambahkan komentar Anda sebagai jawaban, karena Anda cukup banyak memukul kepala di sana.
Adam Lear
Saya telah menyelesaikan masalah ini hanya dengan kode di belakang, Anda dapat memeriksa di sini: http://stackoverflow.com/questions/27339997/how-to-always-yarm-up-warm-up-asp-net-websites-webform-mvc ? noredirect = 1 # comment43136405_27339997
VnDevil

Jawaban:

22

Lima kemungkinan yang bisa saya pikirkan (selain dari beberapa teknik caching canggih dan semacamnya):

Jesse C. Slicer
sumber
Anda tidak dapat menemukan satu contoh?
JeffO
1
ViewState juga berperan dalam masalah ini juga.
Erin
1
1) Dengan kata lain, ASP.NET menggunakan lebih banyak sumber daya daripada asp klasik?
HK1
1
Saya pikir masalah umum lain yang tidak disebutkan dalam jawaban Anda (atau jawaban lain di sini) adalah akses database yang lambat. Saya telah menggunakan beberapa perusahaan hosting web "anggaran" (solusi jaringan, belum lagi nama) dan telah mengalami beberapa kelambatan yang sangat buruk karena akses basis data (SQL Server).
HK1
8

Sepertinya ini mungkin jawaban yang layak.

Bisa jadi banyak faktor yang berperan. Situs yang Anda gunakan saat ini dibangun di .NET, dan biasanya sangat cepat (dikurangi waktu henti / periode pemeliharaan).

Pengembang situs yang Anda kunjungi mungkin mendorong banyak data kepada Anda, atau memperlambat koneksi, atau server yang kelebihan beban, dll. Dll. Ini juga bisa berupa persepsi yang berperan. Juga, mungkin javascript gila sedang bermain dan Anda menjalankan IE? Atau flash?

wkl
sumber
4

Jika Anda tidak benar-benar tahu apa yang Anda lakukan, ASP.NET WebForms memungkinkan Anda membuat aplikasi web dengan menjatuhkan kontrol ke formulir, bahkan menyembunyikan sifat kewarganegaraan http. Ini berfungsi, tetapi pengembangan semacam itu tidak akan menghasilkan kode yang efisien, terutama jika lapisan akses data Anda melibatkan kueri yang dihasilkan memilih segala sesuatu dari basis data sql express tanpa indeks.

Ada banyak situs web asp.net cepat di luar sana, yang dikembangkan oleh orang-orang yang mengerti bagaimana aplikasi web benar-benar bekerja. Itu termasuk situs ini - ia menggunakan ASP.NET MVC yang menyediakan lebih banyak kontrol atas penanganan permintaan individu dan tidak menunjukkan ekstensi .aspx.

Tom Clarkson
sumber
3

Hanya spekulasi di sini karena saya perhatikan hal yang sama. Saya menduga bahwa situs .asp cenderung (perhatikan kata cenderung ) di-host sendiri di server perusahaan, sebagai lawan dari host di atau di pusat data. Jadi mereka sering dijalankan pada perangkat keras dan koneksi yang tidak dirancang untuk lalu lintas web kecepatan tinggi. Saya menduga situs yang didorong oleh fusi dingin juga menderita karena hal ini.

GrandmasterB
sumber
2

Ketika sebuah situs web memuat (event application.start), dibutuhkan waktu untuk memuat semuanya ke dalam memori. Tergantung pada pengaturan IIS, setelah sekitar 20-30 menit tidak aktif, itu akan diturunkan. Saya belum menemukan cara yang layak untuk menjaga aplikasi berjalan terus-menerus tanpa layanan melakukan GETsetiap 10+ menit.

Backend / datalayer yang dirancang dengan buruk dapat membuat segala sesuatu berjalan lambat (tidak peduli seberapa cepat komputer menjalankannya). Profiling akan membantu Anda mengidentifikasi di mana masalahnya.

Tangurena
sumber
1

Anda pasti membayangkan ini. :)

Banyak faktor yang berperan dengan perangkat lunak apa pun. Arsitektur, redundansi aliran kode, kualitas kode, dll. Terlalu banyak untuk mulai mendaftar.

Apakah Anda ingin bukti bahwa ASP baik untuk penggunaan di tingkat perusahaan? Situs ini (dan semua SE) situs web dibuat menggunakan ASP.Net - khususnya MVC.

Kapan terakhir kali situs ini lambat? Saya telah berada di sini selama lebih dari setahun dan tidak pernah sekalipun saya memperhatikan hal-hal berjalan lancar meskipun menggunakan basis yang besar.


sumber
0

Kondisi tampilan benar-benar dapat memperlambat postback. Jika Anda memiliki daftar drop down besar pada halaman Anda tidak harus menggunakan negara tampilan pada mereka.

Kondisi tampilan memungkinkan Anda berpura-pura sedang mengerjakan aplikasi winform stateful. Itu kadang-kadang bisa membuat Anda mendapat masalah.

Tuan Tydus
sumber
0

Semua hal di atas kemungkinan benar. Faktor tunggal terbesar yang mempengaruhi kinerja di situs ASP.NET yang saya kerjakan adalah bahwa segala sesuatu yang berkaitan dengannya sudah tua. Versi .NET framework, server, infrastruktur database, dan kode itu sendiri mengalami penuaan yang buruk.

Saya menduga banyak situs ASP.NET cenderung situs perusahaan. Ini tidak mendapatkan banyak cinta, karena mereka cenderung hanya bekerja . Orang tidak menulis ulang sampai mereka harus melakukannya, yang seringkali sangat lama.

Saya tahu situs tempat saya bekerja dengan ASP.NET yang digunakan mendapat speedup besar hanya dengan pindah ke versi terbaru dari framework, yang memiliki JITing dan cache caching default yang jauh lebih efisien.

Hal lain yang saya lihat bahwa banyak situs ASP.NET tidak tahu bagaimana skala dengan benar. Mereka tidak memiliki pengaturan penyeimbangan muatan yang tepat karena merancang situs mereka agar berfungsi dengan benar dengan kebun web tidak umum atau terdokumentasi dengan baik di komunitas. Jika Anda tidak merancang situs untuk taman web sejak awal, Anda tidak dapat menggunakan mekanisme peningkatan skala bawaan yang dimiliki IIS. Perimbangan beban perangkat lunak dengan Windows NLB tidak terlalu umum dan rumit untuk dikelola. (Ini mengingatkan kembali pada kenyataan bahwa ASP.NET cenderung menjadi perangkat lunak perusahaan, dan cenderung dikelola oleh perusahaan yang menjalankan situs alih-alih profesional TI yang mengetahui cara mengonfigurasi hal ini dengan benar.)

Penyeimbangan beban perangkat keras dengan F5 sangat mahal, tetapi tampaknya merupakan mekanisme paling umum dan sederhana untuk meningkatkan situs ASP.NET dalam jaringan perusahaan. Saya pikir di antara kerumunan open source harapannya adalah bahwa Anda membangun penyeimbangan beban dari awal menggunakan alat open source yang tersedia secara otomatis skala berdasarkan penggunaan. Ini tidak umum di dunia ASP.NET dari apa yang saya lihat.

Kasus
sumber