Live data from Hacker News

Why Nextcloud feels slow to use

ounapuu.ee

131–140 of 359 posts

Re: Why Nextcloud feels slow to use

#131
This post completely misses the point. Linear downloads ~6.1mb of JS over the network, decompressed to ~31mb and still feels snappy.

Applications like linear and nextcloud aren't designed to be opened and closed constantly. You open them once and then work in that tab for the remainder of your session.

As others have pointed out in this thread, "feeling slow" is mostly due to the number of fetch requests and the backend serving those requests.

Re: Why Nextcloud feels slow to use

#132

Having at some point maintained a soft fork / patch-set for Nextcloud.. yes, there is so much performance left on the table. With a few basic patches the file manager, for example, sped up by magnitudes in terms of render speed. The issue remains that the core itself feels like layers upon layers of encrusted code that instead of being fixed have just had another layer added ... "something fundamental wrong? Just add…

This is my theory as well. NC has grown gradually in silos almost, every piece of it is some plugin they've imported from contributions at some point.

For example the reason there's no cohesiveness with a common websocket bus for all those ajax calls is because they all started out as a separate plugin.

NC has gone full modularity and lost performance for it. What we need is a more focused and cohesive tool for document sharing.

Honestly I think today with IaC and containers, a better approach for selfhosting is to use many tools connected by SSO instead of one monstrosity. The old Unix philosophy, do one thing but do it well.

Re: Why Nextcloud feels slow to use

#133

>For context, I consider 1 MB of Javascript to be on the heavy side for a web page/app. I feel like > 2kb of Javascript is heavy. Literally not needed.

While I tend to agree... I've been on enough relatively modern web apps that can hit 8mb pretty easily, usually because bundling and tree shaking are broken. You can save a lot by being judicious.

IMO, the worst offenders are when you bring in charting/graphing libraries into things when either you don't really need them, or otherwise not lazy loading where/when needed. If you're using something like React, then a little reading on SVG can do wonders without bloating an application. I've ripped multi-mb graphing libraries out to replace them with a couple components dynamically generating SVG for simple charting or overlays.

Re: Why Nextcloud feels slow to use

#135

I've used nextcloud for close to I think 8 years now as a replacement for google drive. However my need for something like google drive has reduced massively, and nextcloud continues to be a massive maintenance pain due to its frustratingly fast release cadence. I don't want to have to log into my admin account and baby it through a new release and migration every four months! Why aren't there any LTS branches? The a…

Might also consider Vaultwarden/Bitwarden as a self-host alternative. Yeah it's client-server... that said, been pretty happy as a user.

Re: Why Nextcloud feels slow to use

#136
post #9

For reference, 20 MB is three hundred and thirteen Commodores.

Sure, but what people leave out is that it’s mostly C and assembly. That just isn’t realistic anymore if you want a better developer experience that leads to faster feature rollout, better security, and better stabilty. This is like when people reminisce about the performance of windows 95 and its apps while forgetting about getting a blue screen of death every other hour.

Exactly javascript is a higher level language with a lot of required functionality build in. When compared to C you would need to (for most tasks) write way less actual code in javascript to achieve the same result, for example graphics or maths routines. Therefore it's crazy that it's that big.

Re: Why Nextcloud feels slow to use

#137
post #27

I would love to like Nextcloud, it's pretty great that it does exist. Just that makes it better than... well everything else I haven't found. What frustrates me is that it looks like it works, but once in a while it breaks in a way that is pretty much irreparable (or at least not in a practical way). I want to run an iOS/Android app that backs up images on my server. I tried the iOS app and when it works, it's cool.…

For your specific use case of photos, Immich is the front runner and a much better experience. Sadly for the general Dropbox replacement I haven't found anything either.

[dead]

Re: Why Nextcloud feels slow to use

#138
post #80

Earlier quoted context omitted.

This is not an alternative as it only covers files. Mind what is in the article: "I like what Nextcloud offers with its feature set and how easily it replaces a bunch of services under one roof (files, calendar, contacts, notes, to-do lists, photos etc.), but ". For us Nextcloud AIO is the best thing under the sun. It works reasonably well for our small company (about 10 ppl) and saves us from Microsoft. I'm very gra…

Why should Germany be wasting public money on a private company who keeps shoveling more and more restrictions on their open-source-washed "community" offering, and whose "enterprise" pricing comes in at twice* the price MS365 does for fewer features, worse integration, and with added costs for hosting, storage, and maintenance? * or same, if excluding nextcloud talk, but then missing a chat feature

Could you expand on what restrictions they have placed on the community version?

Re: Why Nextcloud feels slow to use

#139
post #109

Earlier quoted context omitted.

I was going to say... The size of the JS only matters the first time you download it unless there's a lot of tiny files instead of a bundle or two. What the article is complaining about doesn't seem like it's root cause of the slowness. When it comes to JS optimization in the browser there's usually a few great big smoking guns: 1. Tons of tiny files: Bundle them! Big bundle > zillions of lazy-loaded files. 2. Lots o…

15MB of JavaScript is 15MB of code that your browser is trying to execute. It’s the same principle as “compiling a million lines of code takes a lot longer than compiling a thousand lines”.

It's a lot more complicated than that. If I have a 15MB .js file and it's just a collection of functions that get called on-demand (later), that's going to have a very, very low overhead because modern JS engines JIT compile on-the-fly (as functions get used) with optimization happening for "hot" stuff (even later).

If there's 15MB of JS that gets run immediately after page load, that's a different story. Especially if there's lots of nested calls. Ever drill down deep into a series of function calls inside the performance report for the JS on a web page? The more layers of nesting you have, the greater the overhead.

DRY as a concept is great from a code readability standpoint but it's not ideal performance when it comes to things like JS execution (haha). I'm actually disappointed that modern bundlers don't normally inline calls at the JS layer. IMHO, they rely too much on the JIT to optimize hot call sites when that could've been done by the bundler. Instead, bundlers tend to optimize for file size which is becoming less and less of a concern as bandwidth has far outpaced JS bundle sizes.

The entire JS ecosystem is a giant mess of "tiny package does one thing well" that is dependent on n layers of "other tiny package does one thing well." This results in LOADS of unnecessary nesting when the "tiny package that does one thing well" could've just written their own implementation of that simple thing it relies on.

Don't think of it from the perspective of, "tree shaking is supposed to take care of that." Think of it from the perspective of, "tree shaking is only going to remove dead/duplicated code to save file sizes." It's not going to take that 10-line function that handles with and put that logic right where its used (in order to shorten the call tree).

Re: Why Nextcloud feels slow to use

#140
post #22

Does anyone know what they are doing wrong to create such large bundles? What is the lesson here?

I think, some of the issues here is that first nextcloud tries to be compatible with any managed / mutualized hosting.

They also treat every "module"/"apps" whatever you call it, as completely distinct spa without proving much of a sdk/framework. Which mean each app, add is own deps, manage is own build, etc...

Also don't forget that app can even be a part of a screen not the whole thing

Post reply on HN