Sebagian besar aplikasi Halaman Server Aktif (ASP) membuat data format HTML yang disajikan kepada pengguna melalui gabungan string. Artikel ini membandingkan beberapa cara untuk membuat aliran data HTML ini, dan dalam kasus tertentu beberapa metode mengungguli yang lain dalam kinerja. Artikel ini mengasumsikan bahwa Anda sudah memiliki pengetahuan tentang ASP dan pemrograman dasar visual.
Saat menulis halaman ASP, pengembang benar -benar membuat aliran teks yang diformat yang ditulis ke klien web melalui objek respons yang disediakan oleh ASP. Ada berbagai cara untuk membuat aliran teks ini, dan metode yang Anda pilih akan memiliki dampak besar pada kinerja dan skalabilitas aplikasi web Anda. Sering kali, ketika saya membantu klien mengoptimalkan kinerja aplikasi web mereka, saya menemukan bahwa salah satu cara yang lebih efektif adalah dengan mengubah cara aliran HTML dibuat. Artikel ini akan memperkenalkan beberapa teknik umum dan menguji dampaknya pada kinerja halaman ASP sederhana.
Banyak pengembang ASP mengikuti prinsip -prinsip rekayasa perangkat lunak yang baik dan memodulasi kode mereka sebanyak mungkin. Desain ini biasanya menggunakan file termasuk yang berisi fungsi yang memformat bagian -bagian halaman yang terputus -putus spesifik. Output string dari fungsi -fungsi ini (biasanya kode tabel HTML) dapat membuat halaman lengkap melalui berbagai kombinasi. Beberapa pengembang telah meningkatkan pendekatan ini dengan memindahkan fungsi HTML ini ke dalam komponen COM Visual Basic, berharap dapat memanfaatkan kinerja tambahan yang disediakan oleh kode yang dikompilasi.
Meskipun pendekatan desain ini baik, metode yang digunakan untuk membuat string yang membentuk komponen kode HTML yang terputus ini akan memiliki dampak besar pada kinerja dan skalabilitas situs web, apakah operasi aktual dilakukan dalam file ASP termasuk atau dalam komponen COM visual.
Silakan lihat cuplikan kode berikut dari fungsi WriteHTML. Parameter bernama data hanyalah serangkaian string yang berisi beberapa data yang akan diformat menjadi struktur tabel (misalnya, data yang dikembalikan dari database).
Fungsi writeHtml (data) redup nrepfor nrep = 0 hingga 99 shtml = shtml & vbcrlf _ & "<tr> <td>" & (nrep + 1) & "</td> <td>" _ & data (0, nrep) & "</td> <td>" _ & data (0, nrep) & "</td> <td>" _ & _ & nrep) & "</td>" Data (2, NREP) & "</td> <td>" _ & Data (2, NREP) & "</td> <td>" _ & data (3, NREP) & "</td> <td>" _ & data (4, NREP) & "</td> <td>" _ & Data (4, NREP) & "</td> <td>" _, nREP) & "</td> (TD> (NREP) &" </TD> (TD> (4, "</td> </tr>" nextwritehtml = fungsi shtmlend
Ini adalah metode umum yang digunakan oleh banyak ASP dan pengembang dasar visual saat membuat kode HTML. Teks yang terkandung dalam variabel SHTML dikembalikan ke kode panggilan dan ditulis ke klien menggunakan response.write. Tentu saja, ini juga dapat dinyatakan sebagai kode serupa yang secara langsung menanamkan halaman yang tidak berisi fungsi WriteHTML. Masalah dengan kode ini adalah bahwa tipe data string (bstr atau string dasar) yang digunakan oleh ASP dan visual basic tidak dapat benar -benar mengubah panjangnya. Ini berarti bahwa setiap kali panjang string berubah, representasi asli dari string dalam memori akan rusak, dan representasi baru yang berisi data string baru akan dibuat: Ini akan meningkatkan pengoperasian memori mengalokasikan dan memori deallocating. Tentu saja, ASP dan Visual Basic telah memecahkan ini untuk Anda, sehingga overhead yang sebenarnya tidak akan segera muncul. Alokasi dan memori yang tidak allokasi mensyaratkan bahwa kode runtime dasar membuka kunci setiap kunci khusus, sehingga membutuhkan banyak overhead. Masalah ini menjadi sangat jelas ketika string menjadi potongan memori yang besar dan besar harus dialokasikan dan dialokasikan dengan cara yang cepat dan berkelanjutan, karena terjadi selama penggabungan string besar. Meskipun masalah ini memiliki sedikit dampak pada lingkungan pengguna tunggal, ini dapat menyebabkan masalah kinerja dan skalabilitas yang serius di lingkungan server (misalnya, aplikasi ASP yang berjalan di server web).