Chrome Dev Summit 2018 is happening now and streaming live on YouTube. Watch now.

Mengoptimalkan Efisiensi Materi

Aplikasi web kita terus berkembang dalam cakupan, ambisi, dan fungsionalitasnya -- hal ini menggembirakan. Akan tetapi, upaya yang tak surut menuju web yang lebih kaya mendorong tren lain: jumlah data yang diunduh oleh setiap aplikasi terus meningkat secara stabil. Untuk memperoleh kinerja terbaik kita perlu mengoptimalkan setiap dan masing-masing byte!

Seperti apa aplikasi web modern? Arsip HTTP bisa membantu kita menjawab pertanyaan ini. Proyek ini melacak bagaimana web dibangun dengan merayapi situs terpopuler secara berkala (lebih dari 300.000 situs dari daftar Alexa Top 1M) dan merekam serta mengumpulkan analisis mengenai jumlah sumber daya, tipe materi, dan metadata lainnya untuk masing-masing destinasi.

Tren Arsip HTTP

Persentil ke-50 Persentil ke-75 Persentil ke-90
HTML 13 KB 26 KB 54 KB
Gambar 528 KB 1.213 KB 2.384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
Lainnya 282 KB 308 KB 353 KB
Total 1.054 KB 1.985 KB 3.486 KB

Data di atas merekam tren pertumbuhan jumlah byte yang diunduh untuk destinasi web populer antara Januari 2013 dan Januari 2014. Tentu saja, tidak setiap situs tumbuh pada laju yang sama atau membutuhkan jumlah data yang sama, sehingga alasan mengapa kami menyoroti kuantil berbeda di dalam distribusi ini: Ke-50 (median), ke-75, dan ke-90.

Situs median di awal 2014 terdiri dari 75 permintaan yang jumlah totalnya adalah 1.054 KB dari total byte yang ditransfer, dan total jumlah byte (dan permintaan) telah tumbuh pada laju yang stabil di sepanjang tahun sebelumnya. Angka ini sebenarnya sama sekali tidak mengagetkan, namun membawa implikasi kinerja penting: ya, kecepatan internet memang semakin cepat, namun peningkatan kecepatan ini memiliki laju berbeda di setiap negara, dan banyak pengguna masih tunduk pada pembatasan data dan skema pengukuran yang mahal - terutama di perangkat seluler.

Tidak seperti aplikasi desktop, aplikasi web tidak membutuhkan proses pemasangan terpisah: masukkan saja URL-nya maka kita sudah menjalankannya -- itulah fitur kunci dari web. Akan tetapi untuk mewujudkan hal ini kita sering kali harus mengambil lusinan, bahkan ratusan, sumber daya berbeda, yang besarnya semua bisa hingga beberapa megabyte data dan harus disatukan dalam ratusan milidetik untuk memfasilitasi pengalaman web instan yang kita harapkan.

Mencapai pengalaman web instan dengan mempertimbangkan semua keharusan ini bukanlah hal yang mudah, itulah mengapa mengoptimalkan efisiensi materi sangat penting: meniadakan unduhan tak perlu, mengoptimalkan enkode transfer dari setiap sumber daya melalui berbagai teknik kompresi, dan pemanfaatan cache jika memungkinkan untuk meniadakan unduhan yang tak perlu.