Mengapa Nextcloud Terasa Lambat
(ounapuu.ee)- 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 aplikasiNotificationsApp.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), danemoji-picker(0.9MB)- Totalnya 18.8MB, dan dalam lingkungan nyata bisa membuat pengguna menunggu lebih dari 1 menit
- Aplikasi Notes:
notes-main.jssaja 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
3 komentar
Memang lambat. Bukan cuma kliennya yang lambat, servernya juga lambat.
Di mesin 8745HS, membuat thumbnail untuk ratusan file PDF butuh berjam-jam dan tetap tidak selesai.
Lebih baik pakai server file lain apa saja. Kalau kliennya Windows, pakai
smb, sisanya lebih enak pakai server WebDAV denganrcloneataudufs.copyparty lumayan bagus.
Opini Hacker News
Saya ingin menyukai Nextcloud. Menurut saya keberadaannya sendiri sudah luar biasa
Tapi meski kelihatannya berjalan baik, sesekali muncul error yang tidak bisa dipulihkan hingga semuanya rusak total
Saya mencoba mencadangkan foto keluarga secara otomatis lewat aplikasi iOS/Android, tetapi aplikasi iOS kadang memunculkan error “locked webdav” atau sinkronisasinya berhenti
Akhirnya saya pernah berada dalam situasi harus mengunggah ulang 80GB foto dari awal
Terlalu tidak stabil untuk dipakai keluarga, jadi saya butuh alternatif yang andal. Praktis tidak ada alternatif selain iCloud
Saya menempelkan file lewat integrasi aplikasi Files, tetapi sinkronisasi tidak berjalan dan datanya hilang tanpa peringatan apa pun
copyparty GitHub — hanya punya fitur yang dibutuhkan tanpa beban berlebih yang tidak perlu
Tapi sebagai pengganti Dropbox, tetap belum ada opsi yang benar-benar pas
Aplikasi resminya penuh bug, tetapi sisi server stabil
Nextcloud lambat karena terlalu banyak pemanggilan JavaScript
Saat me-refresh halaman kalender, terjadi 124 panggilan jaringan, dan 31 di antaranya tidak di-cache
Setiap kalender memakan waktu lebih dari 30ms, jadi makin banyak kalender, makin menumpuk pula latensinya
Di jaringan lokal butuh 1 detik, di 4G bisa lebih dari 33 detik. Desainnya sendiri memang tidak efisien
Struktur berbasis REST seperti ini memang mau tidak mau lambat di jaringan seluler karena latensi bolak-baliknya besar
Menurut saya sekarang saatnya memakai WebSocket alih-alih REST
Menambah atau mengubah jadwal jadi merepotkan dan UI-nya terasa kekanak-kanakan. Tidak ada web calendar open source yang benar-benar layak pakai
Pendekatan seperti Electric SQL terasa menarik
Selain itu, usulan perbaikan JS seperti TC39 import proposal juga mungkin membantu
Dulu saya pernah merawat soft fork dari Nextcloud, dan struktur dasarnya terlalu rumit
Hanya dengan menerapkan beberapa patch peningkatan performa saja, kecepatan render file manager meningkat beberapa kali lipat
Tapi codebase-nya adalah struktur berlapis-lapis yang ditumpuk di atas lapisan lain, jadi sulit dipercaya
Pada akhirnya saya meninggalkan proyek itu. Kompleksitas seperti ini rasanya ikut menjaga hidup ekosistem penyedia hosting
Setiap fitur berawal sebagai plugin terpisah sehingga tidak ada integrasi yang menyatu
Sekarang ia sudah menjadi monster tunggal, dan menurut saya lebih baik menghubungkan beberapa alat lewat SSO
Dan sebenarnya menjalankan Nextcloud tidak sesulit itu. Setelah sekali disetel, pemeliharaannya sederhana
Menurut saya penyebab lambatnya bukan ukuran JS seperti yang disebut artikel, melainkan logika yang tidak efisien
Masalahnya adalah terlalu banyak pemanggilan API dan update UI
Dulu kalau sudah lewat 200KB saja kami akan meninjau optimisasi, sementara Nextcloud mencapai 15MB
Saya sudah 7 tahun memakai Nextcloud untuk backup foto keluarga
Privasinya bagus dan stabil, tetapi sebagai pengganti Google Docs saya sama sekali tidak akan merekomendasikannya
Upload berukuran besar maupun loading thumbnail tidak stabil dan lambat
Meski begitu tidak ada pengganti lain, dan saya tidak ingin menyerahkan data ke AI milik perusahaan besar
Saya berharap keluarga saya mau lebih aktif memakainya
Saya sudah mencoba berbagai file manager self-hosted
Saya pernah memakai Ajaxplorer → Pydio → Nextcloud → FileRun, dan FileRun yang paling memuaskan
Cepat, stabil, dan bekerja baik juga di browser mobile
Sekarang memang berbayar, tetapi menurut saya sepadan
copyparty juga ringan dan cepat, tetapi kurang ramah untuk pengguna umum
Saya kangen fitur “file request” milik FileRun
filebrowser GitHub
filebrowser-docker
tautan demo
Saya ingin mencoba menggabungkannya dengan Syncthing, tetapi khawatir soal beban CPU
Nextcloud lambat dan gemuk, tetapi stabil
Kami memakainya selama bertahun-tahun di perusahaan beranggotakan 8 orang tanpa masalah
Web app-nya lambat sehingga hampir tidak kami pakai, dan kami lebih sering memakai klien sinkronisasi desktop
Plugin autentikasi IMAP sangat berguna sehingga pengelolaan pengguna jadi mudah
Bisa dikustomisasi sebebasnya dengan uBlock, userstyle, userscript, dan sebagainya
Dulu saya pernah menemukan dan melaporkan kerentanan PDF viewer di Nextcloud
Masalahnya karena mereka menyertakan PDF viewer berbasis JS versi lama, dan saat berusia 16 tahun saya menerima $100
Tulisan blog saya
Banyak orang mengeluh soal proyek open source, tetapi sedikit yang mau langsung memperbaikinya
Saya mencintai Nextcloud. Memang lambat, tetapi data saya tetap saya miliki sendiri, dan karena kodenya AGPL, saya juga bisa memodifikasinya
Bisa dipakai gratis, dan kita dapat menambahkan fitur tambahan seperti “berbelanja” ekstensi
Saya sudah memakainya lebih dari 6 tahun tanpa masalah besar, dan kebebasan seperti ini benar-benar keren
Memang tidak sempurna, tetapi saya bersyukur proyek seperti ini ada
Kelebihan Nextcloud adalah seluruh alat kolaborasi bisa ditangani dalam satu platform
Ia memberi pengalaman yang terintegrasi untuk file, kalender, catatan, office, foto, Talk, dan lain-lain
Paket AIO sudah banyak menyelesaikan masalah update dan stabilitas
Hanya saja, karena berbasis PHP performanya kurang, dan UI-nya rasanya perlu dipoles seperti Synology DSM
Masalahnya adalah struktur I/O yang tidak efisien dan begitu banyak panggilan XHR
PHP punya aksesibilitas tinggi sehingga menguntungkan untuk kontribusi komunitas
dokumentasi resmi — tetapi ketergantungannya pada Docker banyak dan batasan lingkungannya besar