- Kişisel sunucuda Nextcloud optimize edilse bile yavaş tepki vermesinin nedeni, aşırı JavaScript yükleme yapısı
- İlk sayfa yüklemesinde 15~20MB JavaScript indiriliyor; sıkıştırma sonrası bile 4~5MB seviyesinde kalarak hâlâ oldukça ağır
core-common.js (4.71MB), NotificationsApp.chunk.mjs (1.06MB), Calendar uygulaması 5.94MB, Files uygulaması 18.8MB, Notes uygulaması 20.91MB gibi uygulama bazlı script boyutları çok büyük
- Bu yapı nedeniyle iPhone 13 mini'de bile Tasks uygulamasının açılmasında 5~10 saniye gecikme yaşanıyor
- Bazı işlevler Vikunja (1.5MB JS) ve Immich gibi araçlarla değiştirildi, ancak Nextcloud'un entegre yapısı nedeniyle tamamen ikame etmek zor
Nextcloud'da performans düşüşünün nedeni
- Nextcloud; dosya, takvim, kişiler, notlar, yapılacaklar, fotoğraflar gibi birçok işlevi entegre biçimde sunuyor, ancak algılanan kullanım hızı yavaş
- Donanım performansının yeterli olduğu ortamlarda bile tepki süresi yavaş kalıyor
- Geliştirici araçlarıyla yapılan analiz, gecikmenin başlıca nedeninin aşırı JavaScript miktarı olduğunu gösteriyor
- İlk sayfa yüklemesinde 15~20MB JavaScript indiriliyor
- Sıkıştırılmış iletimden sonra bile 4~5MB düzeyinde; bu da tipik bir web uygulamasına (1MB) göre çok büyük
- Tarayıcı önbelleği bulunsa bile, her ziyarette büyük miktarda kodun çalıştırılması gerektiği için yükleme gecikmesi oluşuyor
Başlıca JavaScript bundle boyutları
core-common.js: 4.71MB; birçok uygulamada ortak işlevler sağlıyor
NotificationsApp.chunk.mjs: 1.06MB
- Calendar uygulaması: yalnızca varsayılan takvim görünümü için 5.94MB gerekiyor
- Yavaş ağ koşullarında 30 saniyeyi aşan yükleme gecikmeleri yaşanabiliyor
- Files uygulaması:
EditorOutline (1.77MB), previewUtils (1.17MB), index (1.09MB), emoji-picker (0.9MB) gibi çok sayıda script içeriyor
- Toplam 18.8MB olup, gerçek kullanımda 1 dakikayı aşan bekleme süreleri görülebiliyor
- Notes uygulaması: yalnızca
notes-main.js 4.36MB; toplamda yaklaşık 20.91MB
Kullanıcı deneyimine etkisi
- Tasks uygulaması çalıştırıldığında da 5~10 saniyelik gecikme yaşanıyor
- Örnek: mağazada alışveriş listesini açarken anında görüntülenmiyor
- İşlevlere kıyasla bundle boyutu orantısız derecede büyük olduğu için, işlevsellik ile performans arasında dengesizlik oluşuyor
- Nextcloud'un yapısında çok sayıda ortak kütüphane ve araç bulunduğundan, entegre deneyimin bedeli performans kaybı oluyor
Alternatif servislerden yararlanma
- Bazı işlevler Vikunja (görev yönetimi, 1.5MB JS) ve Immich (fotoğraf yönetimi) ile ayrı olarak kullanılabiliyor
- Vikunja kusursuz değil, ancak JS boyutu küçük olduğu için algılanan hızı daha iyi
- Buna rağmen Nextcloud'un entegrasyon düzeyi ve kullanım kolaylığı nedeniyle tamamen yerine geçirmek zor
Sonuç ve algı değişimi
- Nextcloud'un mevcut yapısında haklı gerekçeler ya da insan kaynağı eksikliği gibi pratik kısıtlar olabilir
- Buna rağmen, kullanıcı deneyimi ve erişilebilirlikteki gerileme açık bir sorun olarak gösteriliyor
- Web performansı uzmanı Alex Russell'ın yazısı sayesinde, web performansının önemi ile geliştirme ekiplerinin performans ve erişilebilirlik yönetimindeki ihmali daha görünür hâle geliyor
- Web uygulaması geliştirirken performance inequality sorununu dikkate almak gerekiyor
3 yorum
Gerçekten yavaş. Sadece istemci değil, sunucu da yavaş.
8745HS bir makinede birkaç yüz PDF için küçük resim oluşturmak saatler sürüyor ve yine de bitmiyor.
Başka herhangi bir dosya sunucusu çalıştırmak daha iyi. İstemci Windows ise
smb, geri kalanı içinsercloneya dadufsile bir WebDAV sunucusu kullanmak daha iyi oluyor.copyparty bayağı iyi.
Hacker News görüşleri
Nextcloud'u sevmek istiyorum. Varlığının kendisi bile etkileyici
Ama dışarıdan düzgün çalışıyor gibi görünse de bazen tamamen çöküyor ve geri döndürülemez hatalar ortaya çıkıyor
Aile fotoğraflarını iOS/Android uygulamasıyla otomatik yedeklemeye çalıştım, ancak iOS uygulaması bazen “locked webdav” hatası veriyor ya da senkronizasyon duruyor
Sonunda 80 GB fotoğrafı baştan yeniden yüklemek zorunda kaldım
Ailenin kullanması için fazla güvensiz; güvenilir bir alternatif gerekiyor. Pratikte iCloud dışında alternatif yok
Files uygulaması entegrasyonuyla yapıştırma yaptım ama senkronizasyon olmadı ve hiçbir uyarı vermeden veri kayboldu
copyparty GitHub — sadece gerekli özellikler var, gereksiz şişkinlik yok
Ama Dropbox alternatifi olarak hâlâ gerçekten uygun bir şey yok
Resmî uygulama hatalarla dolu ama sunucu tarafı stabil
Nextcloud çok fazla JavaScript çağrısı yaptığı için yavaş
Takvim sayfası yenilendiğinde 124 ağ çağrısı yapılıyor ve bunların 31'i önbelleğe alınmıyor
Her takvim 30 ms'den fazla sürüyor, bu yüzden takvim sayısı arttıkça gecikme birikiyor
Yerel ağda bile 1 saniye, 4G ortamında ise 33 saniyeden fazla sürüyor. Tasarımın kendisi verimsiz
Bu tür REST tabanlı yapı mobil ağlarda gidiş-dönüş gecikmesi yüksek olduğu için kaçınılmaz olarak yavaş kalıyor
Artık REST yerine WebSocket kullanmanın zamanı geldiğini düşünüyorum
Etkinlik eklemek veya düzenlemek zahmetli hâle geldi ve arayüz de çocuksu bir görünüme büründü. Kullanışlı bir açık kaynak web takvimi yok
Electric SQL gibi yaklaşımlar ilgi çekici
Ayrıca TC39 import proposal gibi JS iyileştirme önerileri de yardımcı olabilir
Eskiden Nextcloud'un bir soft fork'unu bakımını yapıyordum, ama temel mimari çok karmaşık
Yalnızca birkaç performans yaması uygulayarak bile dosya yöneticisinin render hızını birkaç kat artırmıştım
Ama kod tabanı katman üstüne katman eklenmiş bir yapı olduğu için güven vermiyor
Sonunda projeyi bıraktım. Bu karmaşıklık sanki hosting sağlayıcı ekosistemini ayakta tutan unsurlardan biri gibi
Her özellik bağımsız bir eklenti olarak başladığı için bütünlük yok
Artık tek bir canavara dönüştü; bence bunun yerine birkaç aracı SSO ile bağlamak daha iyi
Ayrıca gerçekte Nextcloud'u işletmek o kadar da zor değil. Bir kez kurunca bakım basit
Yazıda sözü edilen JS boyutundan çok, verimsiz mantığın yavaşlığın asıl nedeni olduğunu düşünüyorum
Sorun, aşırı sayıda API çağrısı ve arayüz güncellemesi
Eskiden 200 KB'ı geçince optimizasyon kontrolü yapardık, Nextcloud ise 15 MB
Nextcloud'u 7 yıldır aile fotoğrafı yedekleme için kullanıyorum
Mahremiyet açısından iyi ve stabil, ama Google Docs alternatifi olarak asla önermem
Büyük yüklemeler ve küçük görsel yükleme işlemleri dengesiz ve yavaş
Yine de alternatifi yok ve verilerimi büyük şirketlerin yapay zekasına emanet etmek istemiyorum
Keşke ailem de daha aktif kullansa
Çeşitli self-hosted dosya yöneticileri kullandım
Ajaxplorer → Pydio → Nextcloud → FileRun sırasıyla kullandım ve en memnun kaldığım FileRun oldu
Hızlı, stabil ve mobil tarayıcıda da iyi çalışıyor
Şimdi ücretli ama buna değer
copyparty de hafif ve hızlı, ama genel kullanıcı için pek dostane değil
FileRun'ın “file request” özelliğini özlüyorum
filebrowser GitHub
filebrowser-docker
demo bağlantısı
Syncthing ile birlikte denemeyi düşünüyorum ama CPU yükünden endişeliyim
Nextcloud yavaş ve şişkin ama stabil
8 kişilik bir şirkette yıllardır sorunsuz kullanıyoruz
Web uygulaması yavaş olduğu için neredeyse hiç kullanmıyoruz, daha çok masaüstü senkronizasyon istemcisini kullanıyoruz
IMAP kimlik doğrulama eklentisi çok kullanışlı, bu da kullanıcı yönetimini kolaylaştırıyor
uBlock, userstyle, userscript gibi araçlarla özgürce özelleştirilebiliyor
Eskiden Nextcloud'un PDF görüntüleyici açığını bulup bildirmiştim
Sorun, eski sürüm JS tabanlı PDF görüntüleyiciyi içermesiydi ve 16 yaşındayken 100 dolar almıştım
blog yazım
Açık kaynak projeler hakkında çok şikâyet eden var ama doğrudan iyileştirmeye çalışan az kişi var
Nextcloud'u seviyorum. Yavaş olsa da verilerim bana ait ve AGPL kodu olduğu için değiştirmek de mümkün
Ücretsiz kullanılabiliyor ve eklentiler adeta “alışveriş yapar gibi” eklenebiliyor
6 yıldan uzun süredir büyük bir sorun yaşamadan kullanıyorum ve bu özgürlük gerçekten harika
Kusursuz değil ama var olduğu için minnettar olunacak bir proje
Nextcloud'un güçlü yanı, tek bir platform üzerinden tüm işbirliği araçlarını yönetebilmesi
Dosyalar, takvim, notlar, ofis, fotoğraflar, Talk gibi araçlarda bütünleşik bir deneyim sunuyor
AIO paketi güncelleme ve stabilite sorunlarının çoğunu çözdü
Ancak PHP tabanlı olduğu için performans düşük ve arayüzün Synology DSM gibi daha rafine olması iyi olurdu
Sorun verimsiz I/O yapısı ve sayısız XHR çağrısı
PHP erişilebilirliği yüksek olduğu için topluluk katkısı açısından avantajlı
resmî dokümantasyon — ancak Docker bağımlılığı fazla ve ortam kısıtları büyük