Z beberapa jam yang lalu telah mempublikasikan pemilu.tv dalam blog-nya di sini. Z menulis bahwa halaman tersebut memakan waktu cukup lama untuk membukanya. Saya coba analisis kenapa itu lama dan bagaimana cara memperbaikinya. Saya coba analisis singkat performance-nya dengan HttpWatch Pro yang baru saja saya dapat dari SimTec.
Dari data yang diambil dari HttpWatch bahwa terdapat dua kali request ke server pemilu.tv. Pertama adalah request page beserta javascript-nya. Yang kedua adalah request XAP file beserta datanya.

Pada request yang pertama terlihat bahwa Z menggunakan ScriptManager debug mode (lihat pada gambar di atas). Dari data tersebut, pada request pertama 11.164 detik digunakan untuk download javascript dari ASP.NET ScriptManager dan Silverlight control (javascript) sebesar 444359 bytes (sekitar 434KB).
Perbaikan performance dapat dilakukan dengan tidak menggunakan ScriptManager. Jika tidak membutuhkan coding Silverlight dengan JavaScript tidak perlu include javascript untuk Silverlight. Dalam page bisa langsung menggunakan tag <embed....>. Dengan cara tersebut bisa menghemat file yang didownload 450KB. Page utamanya juga lebih ringan karena banyak tag yang bisa dibuang.
Pada request yang kedua (gambar di bawah) total file yang didownload mencapai 1,4MB. Dalam request tersebut terdapat download dua buah file yang berukuran gede. File pertama adalah XAP file yang merupakan inti aplikasi Silverlight 2.0. File kedua sepertinya data peta pulau jawa dan bali. Selain itu juga terdapat request 404 terhadap file favicon.ico selama 0.7 detik.
Untuk memperbaiki performance pada request ini dapat dilakukan dengan.
- Hindari penggunaan embeded font
- Compile dengan release mode
- Gunakan data yang lebih ringan dibandingkan .shp. Misalnya untuk gambar peta bisa langsung dalam bentuk XAML atau JSON data.
- Buat file favicon.ico sehingga tidak ada lagi request 404.
Cukup ini dulu analisis singkat dari saya. Semoga situs tersebut bisa lebih ringan dari sekarang. Dengan HttpWatch kita bisa analisis performance situs dan bagaimana melakukan improvement walaupun tidak tahu source-code-nya.
Terima kasih kepada Simon Perkins yang telah memberikan license HttpWatch Pro kepada saya.