Hari ini saya berbicara dengan beberapa teman di MSN Group tentang optimalisasi kinerja program ASP.net.
Sekarang mari kita rangkum metode pengoptimalannya:
1. Optimasi database, termasuk optimasi struktur tabel, optimasi indeks, optimasi pernyataan SQL, dan optimasi prosedur tersimpan
2. Optimalkan Kondisi Tampilan
3. Gunakan cache
4. Menghasilkan halaman statis (terutama untuk sistem penerbitan informasi front-end yang tidak terlalu interaktif)
5. Gunakan IIS/Apache front-end untuk menangani permintaan halaman statis, gambar, dan file js
6. Algoritma optimasi
7. Setiap orang dipersilakan untuk menambahkan
. Mengenai penyetelan kinerja, saran dari hampir semua ahli adalah: Jika tidak ada pengukuran kinerja yang pasti, jangan lakukan penyetelan kinerja. Penyetelan tanpa pengujian kinerja benchmark pada dasarnya tidak akan memberikan manfaat lain kecuali membuat kode sistem menjadi berantakan. Efek yang Anda peroleh dengan bekerja keras untuk meningkatkan algoritme dari 0,1 detik menjadi 0,01 detik akan sering kali hilang karena pernyataan pemilihan yang buruk.
Oleh karena itu, cara-cara sebelumnya bukanlah obat mujarab. Untuk menyetelnya, Anda harus memahami terlebih dahulu di mana sistemnya lambat. Jangan pernah mencari pertolongan medis dengan tergesa-gesa. Konten berikut ini berasal dari pengalaman kerja pribadi saya, tidak semua sistem bisa diterapkan, harap diingat! ! ! !
Mari kita analisis empat metode penyetelan ini:
Untuk aplikasi jenis sistem manajemen OA/bisnis, optimalisasi basis data sering kali menjadi poin penting karena beberapa alasan:
1.CRUD pada database adalah operasi yang paling umum dalam sistem ini.
2. Operasi pada sistem database sering menyebabkan I/O disk (karena file database dan log disimpan di disk)
3. Operasi aplikasi pada sistem database seringkali bersifat lintas proses atau bahkan lintas mesin. (I/O disk + I/O jaringan, tidak peduli seberapa cepat CPU atau berapa banyak memori, itu di luar jangkauan kami)
Oleh karena itu, operasi pada database ini sering kali menjadi penghambat kinerja seluruh sistem.
Jadi, mengetahui arahan umum ini, bagaimana cara mengetahui SQL atau prosedur tersimpan mana yang lambat? Ini memerlukan penggabungan profiler database.
Untuk SQL Server, Anda dapat membaca artikel ini.
http://www.microsoft.com/china/msdn/library/data/sqlserver/Profiler.mspx?mfr=true
Untuk Oracle, Anda bisa membaca artikel ini
http://www.javaeye.com/post/117389
2. ViewState, Dongdong ini berukuran relatif besar dan akan berdampak tertentu pada aplikasi Internet. Mengenai optimalisasinya, pihak taman sudah membicarakannya, jadi Anda bisa mencarinya sendiri.
3. Pendapat saya tentang penggunaan cache sangat tidak sesuai dengan pendapat beberapa teman di MSN Group. Seorang teman di Grup MSN percaya bahwa cache dapat berupa sekumpulan variabel statis, atau beberapa variabel yang dikendalikan oleh pengontrol cache. Saya pribadi berpikir bahwa cache seperti itu mungkin memiliki kinerja yang baik dalam lingkungan server tunggal, dalam lingkungan multi-server, cache seperti itu akan menjadi penghambat kinerja, karena aplikasi atau pengontrol cache perlu memastikan dengan hati-hati konten cache dari beberapa proses. . Proses ini sangat mengurangi skalabilitas program. Pertimbangkan Web Farm dengan 100 server. Modifikasi cache dalam satu proses memerlukan pemberitahuan dan konfirmasi bahwa 99 server yang tersisa telah diubah dengan benar.
Untuk ini, memcache adalah solusi yang relatif baik. Produk wiki terkenal mediawiki menggunakannya sebagai server cache. Memcache juga memiliki api klien .net.
4. Saya kurang paham, mohon saran dari para ahli
. 5. Banyak sekali perkenalan di Internet, khususnya di Java. Ada banyak perkenalan tentang apache dengan Tomcat. Google sendiri.
6. Pengoptimalan ini adalah yang paling rumit, dan efeknya mungkin paling tidak terlihat. Jika Anda harus melakukannya, biarkan delapan makhluk abadi menyeberangi lautan dan menunjukkan kekuatan magis mereka.
http://www.cnblogs.com/ncindy/archive/2006/11/07/553533.html