Optimalisasi ASP, Teknologi Cache ASP
1. Apa itu Asp Cache/Mengapa Cache
Ketika situs web Anda didirikan pada hari -hari awal teknologi ASP, Anda mungkin merasakan kenyamanan yang dibawa oleh teknologi web dinamis ASP, serta kontrol HTTP yang dimodifikasi dan gratis secara acak. Namun, ketika jumlah kunjungan meningkat, Anda pasti akan menemukan bahwa akses situs Anda semakin lambat dan lebih lambat, dan IIS semakin sering. Selanjutnya, Anda harus ingin mengoptimalkan ASP, seperti mengganti lebih banyak database yang baik, membuat indeks, menulis prosedur penyimpanan, dan sebagainya. Beberapa langkah ini tidak perlu meningkatkan tekanan biaya, sementara beberapa tekanan biaya (seperti akses cluster ke SQL), dan efeknya tidak harus.
Menghadapi tekanan akses web, saya pikir metode yang paling ekonomis adalah menggunakan teknologi optimasi cache untuk meringankan tekanan layanan web.
Peningkatan volume akses web biasanya berarti pertumbuhan yang cepat dari permintaan sumber daya berikut:
1. Peningkatan lalu lintas kartu jaringan, perlu mengkonsumsi lebih banyak lalu lintas jaringan pemrosesan CPU dan utas I/O jaringan.
2. perlu untuk membuka/menutup koneksi database lebih sering (jika teknologi basis data digunakan -biasanya ASP akan menggunakan basis data sebagai penyimpanan data), jumlah hal yang secara serius mengonsumsi sumber daya, dan kebuntuan yang disebabkan oleh sumber daya yang bersaing dari Transaksi, yang akan meningkatkan I/O jaringan atau konsumsi CPU.
3. Jika sesi digunakan, IIS akan mengkonsumsi lebih banyak memori untuk mempertahankan status, dan konsumsi memori dapat menyebabkan memori fisik yang tidak mencukupi, menyebabkan pertukaran yang sering antara memori fisik dan memori tambahan, yang menyebabkan eksekusi kode berhenti
4. Karena respons yang tepat waktu dari akses, kegagalan akses halaman web akan disebabkan, yang akan menyebabkan pengguna menyegarkan, sehingga memperburuk kebutuhan CPU, memori, dan sumber daya lainnya.
Bahkan, mengingat aplikasi web yang biasa, berkali -kali eksekusi kode dinamis tidak perlu.
2. Klasifikasi cache ASP
Meringkas tanpa otorisasi, cache ASP dapat dibagi menjadi dua kategori:
1. File cache
Cache file yang disebut SO adalah untuk menilai sesuai dengan penilaian logis. Dapat mengakses file statis dari pengalihan web ke teknologi, untuk memenuhi kebutuhan mengurangi CPU, sumber daya basis data. Ada banyak aplikasi seperti itu. Misalnya, banyak forum kembali membuat file statis ketika mereka membalas stiker, dan kemudian mengarahkan ulang, seperti forum Donews.com. Castle memiliki efek samping (manfaat) -Ini dapat dengan mudah dimasukkan oleh mesin pencari seperti Google. Beberapa sistem siaran pers yang disebut sangat baik telah mengadopsi teknologi ini.
2. File Film Break Cache
Cache file yang disebut SO juga didasarkan pada penilaian logis. Data dalam bentuk file. Misalnya, kami biasanya menyimpan beberapa data dalam format XML, dan kemudian menggunakan teknologi XSLT untuk menerapkan tampilan (pemrosesan XML biasanya memerlukan sejumlah besar sumber daya CPU, jadi IE biasanya membaca XML langsung ke klien untuk menanganinya pada CPU pelanggan). Beginilah forum CSDN diproses.
3. cache memori utama
Selain itu, Anda juga dapat mempertimbangkan untuk berurusan dengan cache dalam memori, dan menyimpan konten yang perlu merespons secara tepat waktu dalam memori. Jika sejumlah besar kebutuhan akses terkonsentrasi pada beberapa halaman kecil atau penyimpanan utama, saya ingin menggunakan cache memori utama untuk sangat meningkatkan kinerja akses web.
3. Cara mencapai/menggunakan cache
Masalah -masalah berikut perlu dipertimbangkan untuk mengimplementasikan cache:
1. Halaman mana yang tidak akan berubah dalam waktu singkat?
Analisis situs Anda sendiri, ada banyak halaman. Misalnya, sebuah situs biasanya memiliki kolom berita dan informasi. Maka halaman -halaman ini cocok untuk cache dengan file statis. Bahkan, sistem siaran pers yang disebut SO dilakukan, sehingga Anda juga dapat merujuk pada ide -ide sistem ini untuk mengubah halaman ASP dinamis asli Anda.
2. Halaman -halaman tersebut dihasilkan untuk semua kunjungan untuk menghasilkan logika yang sama (yaitu, tidak membedakan antara pengunjung).
Kecuali untuk kolom seperti berita dan informasi, semua pengunjung melihat antarmuka, dan penerapan sumber daya seperti forum dan sumber daya konsumsi lainnya umumnya dapat dirancang sebagai generasi logika terpadu (pos yang sama, Zhang Sanli dan Sisi adalah sama ). Ini dapat diimplementasikan dengan cache statis. Anda juga dapat mempertimbangkan untuk melanggar data dan menggunakan teknologi skrip selain kapasitas pemrosesan server, yaitu, browser klien untuk diproses.
3. Gunakan biaya dan panen cache.
Terutama waktu untuk perubahan ruang (respons). Gunakan teknologi cache untuk melakukan pra -pemrosesan konten yang sering dibutuhkan untuk meningkatkan kemampuan respons server web, dan yang lebih penting memenangkan bantuan pengunjung.
Harganya adalah bahwa permintaan ruang web meningkat, dan dapat mempengaruhi efek akses.
Tapi saya pikir cache yang tepat lebih besar dari kerugian.
4. Alih -alih menggunakan cache di tempat -tempat itu
Halaman kueri dinamis, konten permintaan setiap orang berbeda, sehingga hasil tampilannya tidak sama, sehingga tidak mungkin menghasilkan cache hasil kueri, sehingga cache lebih rumit dan di bagian bawah tingkat pemanfaatan cache, yang dihasilkan Biaya manajemen.
Keempat, analisis instance
Misalkan tata letak asli dari forum saran adalah sebagai berikut:
Di direktori root:
homepage default.asp, umumnya esensi, rekomendasi dan sejenisnya
Listborad.asp file ini mencantumkan nama dan pengenalan semua kolom.
ListThread.asp file tidak membawa parameter apa pun untuk menunjukkan semua stiker dan membawa Mainbid untuk mewakili semua stiker dari bagian tertentu. Jika Subbid dibawa untuk menunjukkan posting kolom tertentu. Jika Anda membawa parameter halaman untuk menunjukkan pagination topik.
ViewThread.asp mencantumkan konten stiker tertentu. Kami berasumsi bahwa posting ditampilkan sebagai pidato, dan semua mengikuti stiker tercantum di belakang. Parameter ID adalah posting yang akan ditampilkan.
Reply.asp menanggapi posting tertentu, bawa ID parameter untuk menanggapi posting tertentu
Tidak ada diskusi lain.
Di atas, kita dapat melihat bahwa jika semuanya dilakukan dengan menggunakan ASP/PHP asli, pelaksanaan hampir setiap file ASP memerlukan operasi basis data, permintaan yang sering, dan beberapa kueri. Harus diketahui bahwa database kueri pada akhirnya akan membawa penurunan kinerja, kecepatan respons berkurang, dan dampak penelusuran yang lambat pada pengunjung tidak akan kondusif untuk kualitas web. Lebih penting lagi, untuk dua orang di A dan B, mereka mengunjungi ViewThread.asp dan sejenisnya jika ID konsisten, maka berkali -kali mereka akan melihat konten yang sama (kode HTML yang diterima oleh browser mereka hampir sama), tetapi untuk Ini untuk ini dalam konten yang sama, server perlu membuka koneksi database, kueri, membaca catatan, dan menunjukkan bahwa catatan dan koneksi basis data ditutup. Esensi Esensi Esensi Jika lebih banyak orang diakses oleh lebih banyak orang, hasil akhirnya adalah bahwa orang -orang ini memperburuk sumber daya server. Faktanya, tenaga kerja duplikat untuk konten yang sama dapat dioptimalkan dengan teknologi cache. Misalnya:
Setelah mengirimkan konten repy.asp, kami segera memanggil fungsi statis untuk menghasilkan konten statis ke file html statis seperti viewthread_xxxx.htm, dan kemudian ketika mengunjungi viewThread.asp? File statis yang sesuai viewThreadxxxx.htm. Dengan cara ini, ketika sebuah posting tidak terbaru, ia selalu disediakan untuk konten statis pemirsa;
Listborad.asp juga dapat mengimplementasikan statis. Kami dapat menganalisis parameter yang dapat dibawa, atur nama file cache ke listboard_xx.htm, dan perbarui listboard_xxx.htm saat menambahkan kolom baru. ListThread.asp serupa, tetapi karena lebih banyak parameter, akan ada banyak file cache. Jika Anda ingin cache listthread.asp? Hal yang sama berlaku untuk default.asp.
Jadi bagaimana cara menilai kapan harus memperbarui? Jam berapa untuk memperbarui?
讨论 listThread.asp? File statis. Perhatikan bahwa tidak ada keberadaan di sini berarti bahwa kemunculan konten baru mengharuskan kita untuk memperbarui.
Bagaimana file tidak ada? menghapus. Kita dapat menghapus semua file statis seperti ListThread_XXX_P2.htm saat menerbitkan stiker baru, menghapus stiker, dan stiker bergerak. Dengan cara ini, cache diberitahu.
Masih ada satu masalah yang tersisa sekarang, bagaimana cara menghasilkan file statis?
Kami memperhatikan bahwa konten yang sama yang kami sebutkan sebelumnya.我们可以将改造前的 default.asp 、 listthread.asp 等拷贝一个副本 , 取名为 default_d.asp 、 listthread_2.asp , 且在同一个目录中(理论上 listthtrad.asp? Subid = 123 同 listthread_d.asp? Hasil akses subid = 123 akan menjadi konten yang sama), sehingga dalam logika kebutuhan untuk menghasilkan file statis, kami memanggil salinan sebelum modifikasi dengan permintaan akses web, dapatkan kode HTML, dan simpan sebagai a file statis. Permintaan web ini sebenarnya setara dengan sebelum penampil nyata mengakses konten statis, server itu sendiri diperiksa oleh HTML yang akan menjadi output, dan kemudian mengembalikan kode ini untuk menyimpan fungsi operasi file sebagai file statis. Dengan cara ini, file cache dibuat sebelum penampil asli.
Skema seperti itu hampir tidak menyentuh tata letak asli, dan itu hampir tidak akan menyebabkan kesalahan seperti 404 karena transformasi. Kedua, file statis juga akan membantu situs Anda dengan mudah disertakan oleh mesin pencari seperti Google. Mengapa tidak?
Akhirnya, ingatkan bahwa melalui akses web, di lingkungan pemrograman ASP, banyak orang menggunakan komponen XMLHTTP untuk mengakses, yang akan menyebabkan banyak masalah. Sumber daya yang dapat disimpan oleh XMLHTTP sendiri, menghasilkan konten yang diperoleh oleh permintaan kami melalui komponen ini, menyebabkan kebingungan logis. Oleh karena itu, Anda harus memilih objek HTTP server XML atau komponen WinHTTP untuk mengimplementasikan sumber daya permintaan web.
Menggunakan Teknologi Cache di ASP dapat meningkatkan kinerja situs web Anda.
Sebelum memperkenalkan teknologi ini, mari kita jelaskan apa teknologi cache ASP.
Cache yang disebut SO sebenarnya membuka ruang untuk menyimpan data dalam memori. Setelah Anda melakukan tindakan kueri dan memasukkan hasil kueri ke dalam cache, Anda dapat dengan cepat mengunjungi data dengan cepat. Dan jika Anda tidak memasukkan data ke dalam cache, ketika Anda menjalankan kueri ini lagi, server mengkonsumsi proses dari database dan mengurutkannya.
Ketika data disimpan dalam cache, waktu yang dibutuhkan ketika bertanya lagi terutama pada saat menampilkan data.
Dengan kata lain, kita tidak boleh meletakkan data yang sering perlu diubah menjadi cache server.
Sekarang kami pertama -tama membahas teknik menggunakan ASP di server.
Teknologi cache.
Ketika Anda memiliki banyak data (statis, yaitu, lebih sedikit perubahan) perlu ditampilkan ke klien, Anda dapat mempertimbangkan menggunakan teknologi cache di server. Teknologi ini sangat cocok untuk situs web tersebut dengan konsistensi gaya tampilan yang kuat (ya, untuk situs web non -arus utama, tidak mudah digunakan.)
Bahkan, metode implementasi sangat sederhana.
Ini adalah contoh untuk menampilkan klasifikasi buku
File DisplayBooks.asp:
< %@ Bahasa = javas
Cript %>
<Html>
<body>
<Metode form = post>
Klasifikasi Buku; < % = getBookSlistBox () %>
<p>
<input type = kirim>
< %
Fungsi getBookSlistBox () ()
{{
BookSlistBox = Aplikasi (BookListBox)
if (booklistbox! = null) return bookslistBox;
CRLF = String.FromCharCode (13, 10)
BookSlistBox = <Pilih Nama = Buku> + CRLF;
SQL = SELECT * Dari Pesanan Buku dengan Nama;
cnnbooks = server.CreateObject (adodb.connection);
cnnbooks.open (buku, admin,);
RstBooks = cnnbooks.execute (SQL);
FLDBookName = RSTBooks (Bookname);
While (! RstBooks.eof) {
BookSlistBox = BookSlistBox + <pection> +
FLDBookName + + CRLF;
rstBooks.movenext ();
}
BookSlistBox = BookListBox +
Aplikasi (BookListBox) = BookListBox
Return BooksListBox;
}
%>
Ini sangat sederhana, pada kenyataannya, menggunakan teknologi aplikasi yang sangat sederhana, dan perbedaannya ada dalam satu kalimat:
Aplikasi (BookListBox) = BookListBox
Anda dapat memverifikasi bahwa Anda menemukan bahwa jumlah permintaan di server akan berkurang banyak. Situasi ini sangat cocok untuk situs web yang tidak terlalu sering seperti pembaruan tersebut, seperti Anda diperbarui hanya sekali (atau waktu yang lama).
Mari kita bahas teknologi cache klien. Teknologi ini terutama digunakan untuk menyimpan informasi pribadi pengguna, seperti kata sandi pengguna, kode kode, dll. Ini terutama menggunakan beberapa atribut ADO. Pada saat yang sama, beberapa netizen telah menyebutkan apakah pertanyaan yang dapat menggunakan objek ADO dalam aplikasi. Penjelasannya tidak jelas, biarkan kode berbicara di bawah ini:
File Global.ASA:
<! -Metadata type = file typelib = c:/file program/umum
File/System/ADO/msado15.dll->
<bahasa skrip = vbscript runat = server>
Sub Application_onstart
SQL = Pilih Nama Pengguna, Kata Sandi dari UserInfo
cnnusers = dsn = pengguna
Set RSUSERS = Server.CreateObject (ADODB.Recordset)
'Perhatikan bahwa dua kalimat berikut digunakan untuk mencapai teknologi ADO yang tersedia untuk memutus koneksi
RSCSOMOMERSORSORLOCATION = aduseclient
rscosomers.open sql, cnnadvworks, adoptatic, adlockreadonly
'Melanggar koneksi Recordset dan database
rscoSomers.activeConnection = tidak ada
Atur Aplikasi (RScustomers) = RScustomers
Akhir sub
File Users.asp
< %
'Metode klon membuat setiap pengguna memiliki koleksi recordset
Setel yourers = Application (rsusers) .clone
Setel nama pengguna = YourUsers (nama pengguna)
Setel Password = YourUsers (Kata Sandi)
Lakukan unil pemilik Anda
%>
Nama Pengguna: < % = nama pengguna %> Kata Sandi Pengguna: < % = Kata Sandi %>
< %
yourUsers.movenext
Lingkaran
%>