- Bahkan setelah Nextcloud dioptimalkan di server pribadi, penyebab respons yang tetap lambat adalah struktur pemuatan JavaScript yang berlebihan
- Saat pemuatan halaman awal, 15~20MB JavaScript diunduh, dan bahkan setelah dikompresi masih berada di kisaran 4~5MB sehingga tetap terlalu berat
- Ukuran skrip per aplikasi juga sangat besar, seperti
core-common.js (4.71MB), NotificationsApp.chunk.mjs (1.06MB), aplikasi Calendar 5.94MB, aplikasi Files 18.8MB, dan aplikasi Notes 20.91MB
- Struktur ini menyebabkan penundaan 5~10 detik saat menjalankan aplikasi Tasks bahkan di iPhone 13 mini
- Beberapa fungsi digantikan dengan Vikunja (1.5MB JS) dan Immich, tetapi karena sifat terintegrasi Nextcloud, penggantian total tetap sulit
Penyebab penurunan performa Nextcloud
- Nextcloud menyediakan berbagai fungsi terintegrasi seperti file, kalender, kontak, catatan, tugas, dan foto, tetapi kecepatan yang dirasakan pengguna terasa lambat
- Bahkan di lingkungan dengan performa perangkat keras yang memadai, respons tetap terasa lambat
- Hasil analisis alat pengembang menunjukkan bahwa penyebab utama keterlambatan adalah jumlah JavaScript yang berlebihan
- Saat pemuatan halaman awal, 15~20MB JavaScript diunduh
- Bahkan setelah transmisi terkompresi, ukurannya masih sekitar 4~5MB, jauh lebih besar dibanding standar web app umum (1MB)
- Meskipun cache browser tersedia, eksekusi kode dalam jumlah besar tetap diperlukan pada setiap kunjungan, sehingga menimbulkan keterlambatan saat memuat
Ukuran bundle JavaScript utama
core-common.js : 4.71MB, menyediakan fungsi umum untuk berbagai aplikasi
NotificationsApp.chunk.mjs : 1.06MB
- Aplikasi Calendar: hanya untuk tampilan kalender dasar saja membutuhkan 5.94MB
- Dalam kondisi jaringan lambat, keterlambatan pemuatan lebih dari 30 detik dapat terjadi
- Aplikasi Files: mencakup banyak skrip seperti
EditorOutline (1.77MB), previewUtils (1.17MB), index (1.09MB), dan emoji-picker (0.9MB)
- Totalnya 18.8MB, dan dalam lingkungan nyata bisa membuat pengguna menunggu lebih dari 1 menit
- Aplikasi Notes:
notes-main.js saja sudah 4.36MB, dengan total sekitar 20.91MB
Dampak terhadap pengalaman pengguna
- Saat menjalankan aplikasi Tasks juga terjadi penundaan 5~10 detik
- Contoh: saat membuka daftar belanja di toko, daftar tidak langsung tampil
- Rasio ukuran bundle terhadap fungsi yang diberikan sangat tinggi secara tidak wajar, sehingga terjadi ketidakseimbangan antara fungsionalitas dan performa
- Karena struktur Nextcloud memiliki banyak library dan alat umum, penurunan performa terjadi sebagai harga dari pengalaman terintegrasi
Pemanfaatan layanan alternatif
- Beberapa fungsi dijalankan secara terpisah dengan Vikunja (manajemen tugas, 1.5MB JS) dan Immich (manajemen foto)
- Vikunja memang tidak sempurna, tetapi karena ukuran JS-nya kecil, kecepatan yang dirasakan lebih baik
- Namun, berkat integrasi dan kemudahan dari Nextcloud, penggantian sepenuhnya tetap sulit
Kesimpulan dan perubahan persepsi
- Pada struktur Nextcloud saat ini, mungkin ada kendala nyata seperti alasan yang dapat dibenarkan atau kekurangan tenaga
- Meski begitu, penurunan pengalaman pengguna dan aksesibilitas tetap ditunjukkan sebagai masalah yang jelas
- Melalui tulisan pakar performa web Alex Russell, penulis menjadi menyadari pentingnya performa web serta masalah kelalaian tim pengembang dalam mengelola performa dan aksesibilitas
- Dalam pengembangan web app, masalah performance inequality perlu dipertimbangkan
Belum ada komentar.