Hacker News new | ask | show | jobs
by aspencer8111 3240 days ago
Currently running Slack App, Atom App, and Spotify App on my MBP. According to my system stats, I'm consuming 3GB of RAM across the entire system (OS and all of the above).

So what I would like to know is wtf everyone is doing in these apps to create this CRAZY amount of resource hogging they keep bitching about? Or are they rockin chomebooks? Seriously? I want to know where all of this nonsense is coming from?

7 comments

That is a crazy amount of resource hogging at 3GB.

You're running a music player, a text editor (or IDE), and a chat client. I would expect reasonably that would use less memory. One point you could make is that even native application alternatives, ones that don't use Electron, would be bloated and I would have to agree. Visual Studio .NET is pretty darn slow/cumbersome itself.

Back in 1999 I was running Emacs, xchat and freeamp on my Pentium 66 with 16Mb of RAM. (an weak machine, even for 1999 but with Linux Mandrake and WindowMaker it was usable) The UI was less sophisticated and it doesn't involve network connection but sometimes I'm wondering how did we get there...
A lot of this comes back to higher expectations: we now have much larger displays, color depths, instead of simple bitmap fonts we have much higher-quality rendered vectors with advanced layout systems which can complex scripts, etc. Instead of rendering into a shared buffer, each window has at least one (on OS X, two) full buffers and the whole thing is composited, which is great for responsiveness and visual quality but definitely uses In the 90s, 640x480 was a common display resolution — now Apple recommends that developers ship 512x512 icons.

That's not to say that there aren't decisions to reconsider about code size, resource formats, etc. but I think it's easy to forget how much more behaviour has moved into our default baseline assumptions.

> doesn't involve network connection

In my very limited experience, this makes programming anything several times more complicated. Writing a document editor? Difficult. Writing a networked, multi-user document editor? As difficult as the last thing but with asynchrony and lots of new failure modes.

Slack on my computer, with five teams, consumes 1.8gb of RAM.

Microsoft Word, with a multi-page complicated document, is using 200mb.

Just because we _have_ the resources to allow applications to bloat doesn't mean we should be alright with it. Its a similar argument to electric versus ICE cars; just because gas is cheap doesn't mean we shouldn't support EVs. EVs are fundamentally better for the future.

If we focus on performance optimizing the apps we use, it opens up a wide range of new computing hardware. You make fun of chromebooks, but imagine how much more interesting your work would be if you could use a machine with that performance. Battery life would be substantially higher. The cost of the machine would be substantially lower. The only reason most people need massive performance beasts is because we've pushed abstraction hell and bad engineering practices, so all of our tools suck.

Docker is another offender in recent times. Its great if you're on Linux, but few people are. So on OSX, we need to run a VM, so there goes another gig of memory.

3GB of RAM is precious (and I say that as someone who has 128GB)!

Your bar should not be, "Well, I don't see a slowdown." Many people still develop software on computers with only 8GB total RAM. Throw in a browser and one or two more applications and you're getting close to exhausting that.

Eventually you are going to exhaust your memory resources; using software with poor performance constraints is (in my opinion) inherently antagonistic to a development machine. That's not to say I'm against desktop JavaScript/HTML5 apps categorically, I just think they need much better optimization.

At least on Windows Slack is very memory-hungry, here's mine right now on my work laptop: http://i.imgur.com/76RQeHv.png

No idea why, it's only joining one team with under 20 people and ~5 channels.

Fun Fact! The Spotify desktop client is written in C++! https://www.quora.com/What-is-the-technology-behind-the-Spot....

But I agree, Atom and Slack are really useful to if they consume another 250mb of ram because "It's not optimal", let them use it.

The view layer is powered by Chromium Embedded Framework, so it's not entirely C++.
Very true! I wonder how much more efficient the c++ makes the app in contrast to the node based electron infrastructure
Most of the time Slack is behaving quite well but I've experience it running into 80+% CPU for long periods of time while eating 2-3GiB of RAM, I always forced quit and didn't bother. But yes, sometimes it turns into a resource hog, same with VSCode or Atom, something sometimes makes them feel unresponsive and "laggy".
how's that even possible? I mean just the kernel + mds_store and mdworker of mac take like 2gb of memory.

I also run two java processes with 1gb predefined (well probably I could fine tune them to use 512mb). and one angular/cli which accounts for 800mb. plus my database which got 500mb aswell.

spotify on mac used way more than 500mb memory, the last time I used it and also had an extreme amount of i/o pressure. atom actually did use at least 500 mb memory as well, with just the c# plugin.