Dropbox Has Jumped the Memory Shark
blog.josephscott.org
blog.josephscott.org
Most developer/engineer types have a private server and that’s a great place to install Nextcloud. Nextcloud has cross platform clients, supports strong authenticators (U2F), and open protocols like WebDAV. I even use it to sync org-mode files across many devices with great success.
[1] fsync() seems to have been abandoned but still partially works on my phone - only local networks and you have to manually add folders by ID.
https://nextcloud.com/blog/nextcloud-releases-deep-ios-integ...
(And/or you can use any WebDAV client)
Also, what is your memory there for, if not to be used? Is Dropbox good at releasing or allowing memory it no longer needs to be released, paged out, or processes killed if there is pressure from other applications in the system? If so, what's the problem with Dropbox using the memory until then?
How is this memory usage by Dropbox reasonable? It seems to be another example of insane bloated memory usage which is not only the trend but the fashion these days.
Remember, allocation is the enemy of speed. More CPU cycles, more allocations, more power consumed, shorter battery life on mobile devices (laptops), more charging of devices, more fossil fuels burned.
It wouldn't be reasonable on a 4 MB system, but this isn't a 4 MB system, so how's that relevant to anything?
Why do you have 16 GB of RAM or whatever in your laptop if not for applications to use?
> allocation is the enemy of speed
But the complaint wasn't the volume of allocation - it was the size of the working set.
Does reducing that working set perhaps consume more power than allowing it to sit at the current level? For example an in-memory cache of something could save power.
I think it's very naive and simplistic to just complain about memory consumption in isolation. The memory is there as a tool to be used.
Why do you earn money if not to spend it?
And you’ve already spent the money on your RAM. Why do you want it to sit idle when it could be being used to, for example, decrease sync time in Dropbox?
To reduce memory consumption of Dropbox costs money. Either via development time at Dropbox (so an increase in your subscription fee), via power drawn at your socket, or perhaps somewhere else.
Why are people here so utterly convinced that reducing memory consumption is the right place to spend money to get the best value? What do they know that I don’t?
I don't. It's still a limited resource and Dropbox is not the only thing people run.
If you want Dropbox to reduce memory use will you start complaining that they’re fixing fewer bugs or syncing is taking longer?
I don't know how you do it but when sending data from a file, I read chunks of the file and send the chunk I have read, not the entire thing. These chunks can be very small, particulary as the MTU over a network is something like 1500 bytes (unless using jumbo frames). So to sync 10 files in tandem (10 threads), they would need 10 * 1500 bytes for the read buffers (+ overhead for storing the file pointers). Even you can see that it is a tiny amount of RAM required for this.
Or are you somehow living in a world where your internet upload speed is somehow faster than reading from disk or memory, and your network interface has to wait for reading from disk/memory???
Are they reading the synced files entirely into memory or something stupid like that?
It stops working once it affects literally everything. 1password? Few hundred MB (unless it goes crazy into few GB sometimes). Browser? A GB or so. Some electron apps? Another GB. It really adds up, but no single app will take responsibility because "what else are you going to use the memory for?"
Why are you so sure that memory is the wrong place to put the trade-off?
I expect time-to-market is the trade-off in this case, but I'm not even sure about that. (For example ripcord is written by one person - how many web developers does slack have?)
In my opinion, it reeks of lazy engineering brought about my PMs who want to turn Dropbox into something it isn’t.
Like code quality and efficiency?
This line of thinking is _why_ I have 16 GB of RAM to use. I have an "old" machine -- a 4GB Mac Mini from barely a few years ago. It's now almost unusable with some apps. It's like a kind of software inflation. What used to run fine is now an impossibility I'd briefly recall in a dream.
Why doesn't your compiler lazy load? To make it faster? Why shouldn't Dropbox be fast?
The moral is I guess is it really cost effective to optimise relentlessly - and to whom?
At my job when we need to buy more memory we have to buy a new data center to hold it.
At home I'd have to buy a new motherboard or split my work to a separate computer.
No.