Ask HN: Why does Slack App on macOS drain 3GB of memory?
Can somebody explain to me why the Slack app drains >3.5GBs of memory.
I am using the version 3.1.0 on 10.10.5 OSX.
Am I the only "lucky" user getting such a poor memory performance?
I am using the version 3.1.0 on 10.10.5 OSX.
Am I the only "lucky" user getting such a poor memory performance?
63 comments
[ 0.22 ms ] story [ 138 ms ] threadNo, that's very common. For most people Slack's usefulness outweighs it's poor memory footprint.
I really, really hope you mean "200MB", although I honestly wouldn't be surprised if they managed to use 200GB if accidentally started on a beefy server.
I admit I don't really pay attention but I've never noticed Slack using crazy amounts of memory.
What am I doing right?
Part of 6 organizations.
Running High Sierra.
- Slack: 103.8 MB
- Slack Helper: 61 MB
- Slack Helper: 459.1 MB
- Slack Helper: 549.6 MB
- Slack Helper: 264.9 MB
Total = 1.4384 GB for only 3 Slack channels on macOS High Sierra
Pretty absurd.
I recommend:
* Disabling emoji support, especially animated emojis>
* Disabling auto-expanding of images (gifs are egregious)
* Use compact display
* Limit number of channels/groups you're in if possible, surely you don't need all those channels.
Doing this curbed my resource usage quite a lot. I don't miss emoji's all that much.
For a minimal install (with ssh service and vsftpd), i booted it and flushed the filesystem cache, then ram usage was about 88MB.
Qt? No mobile, slower development.
Java? No mobile, deployment nightmare, Oracle cooties, and often just as heavy as Electron.
Native UI? Out of the question. We don't have anywhere near the resources to develop our app four to five times, implement every new feature four to five times, etc.
Others are some combination of immaturity, lack of mobile support, out of date, lack of support for internationalization and accessibility, etc.
I agree that Electron is cancer, but until there's a better game in town it's the only thing that could possibly meet our needs.
We would pay for a better option, but unfortunately there are probably not enough of us to make another option economically viable. Nobody pays for developer tools so it's an awful market for startups, and a modern UI API with cross platform capability is just too much work for independent open source efforts.
My dream would be a really clean cross platform UI library that lets you develop in a language like Go or Rust.
UI development in 2018 is a sad state of affairs. It was better in many ways in the 1990s and early 2000s. We had wxWidgets and Qt then and they were decent. Mobile "ruined" it by introducing another incredibly popular UI paradigm that rendered literally everything written to date obsolete.
Also C++ is not really the best option. I code systems software in C++ but for UI dev it's not quite productive enough. I've worked with large Qt code bases before and no thanks. I suppose if they've modernized it and incorporated C++11 features it might be more bearable, but in the past it was a pretty awful mess of raw pointers and ownership semantics bugs and very very long compile times.
I would like to think this means there will be a bit of a change going forward.
Slack, which is idling in the background in just one organization, consumes 22 MB more than QtCreator :P OTOH, there's also a full-blown IRC client Konversation, connected to 2 servers and 42 channels total, consuming 80.6 MB.
It, and every JS/Desktop hybrid has so much promise, but my Lord, as a proficient JavaScript junkie that has a deep abiding love for the language, it's not performant.
I just can't use either Atom or VS Code for day to day work.
PS, Sublime, please support some form of JS plugins, even if that means limiting the API for JS plugins.
As an added bonus, there are no more animated emojis in my peripheral vision that can be mistaken for an update / alert.
I'm on Linux, but I presume wc works fine on Mac. A bit of a shame that the qt-based client seems abandoned - but it's open source and python so maybe it'll pick up some steam for those that want something a bit less console only, but still not Web app crappy.
https://github.com/wee-slack/wee-slack
https://github.com/weechat/weechat
https://github.com/weechat/qweechat
I imagine that both for the console client and the qt one it should be possible to map some of the more common emojis to Unicode (eg :heart:).
Sounds like Slack doesn't have any type of performance testing as part of their release cycles.
You need to put it in context. Is system ram under pressure? Poor memory performance is measured by swap i/o or bandwidth, not usage.
If you have 16gb of ram and little else using the ram then there is nothing to worry about. If you have 4gb of ram then a support ticket is probably your best course of action rather than whining to random forums.
To answer your question, runtimes will lazy garbage collect because you might want the data again. Decompressed images and frame buffers lead to faster under interface interaction. You're not using a terminal app, you're using an app that can render any font or image in complex ways to an image buffer, for rendering at 60fps with smooth scroll. Are you also on a retina display?