Current software stacks are incredibly bloated. I recently wrote a simple Java web server. I took care no to use unnecessary memory, I didn't use a single library for it, yet it can't do even basic functions without OOM unless I'm giving it 16MB RAM for heap (and it eats even more for other things). So almost 20 MB RAM for hello world. And that's for relatively efficient VM. I guess, similar web server written with C would use around 20 KB RAM (and most of it for I/O buffers).
That's such an unfair comparison, though (and really, with 8+ GB of RAM being the norm, 20 MB is still pretty svelte). Java has an entire virtual machine and runtime, whereas a C program is just a binary that gets loaded straight into memory.
Java theoretically taking a lot of care not to use excessive memory. It loads classes on demand, it compiles bytecode only when this path is really hot. I don't really see why it's necessary to use 16MB RAM. Golang has GC and doesn't that much memory. Lua has an entire virtual machine and runtime and doesn't use that much memory either. It's not a valid argument. I still believe that current JVM developers just don't care that much about memory consumption which is a valid decision, but I don't like it anyway. Not everyone has 8+GB of RAM. I have 256 MB VPS which runs quite a few of network services and has half of memory free, but I don't think that I could afford Java if I want to run something there, even if my load is tiny.
You can't say "wow, look how much smaller the C program is" and then ignore why it's so much smaller in the first place (no runtime, no garbage collection, etc.) If that's the case, then we should hand-roll assembly all the time because it's "smaller". You also can't just call Java inefficient because it produces larger programs or is "slower". It's all about choosing the right tool for the job.
Perhaps Java should have been designed to scale down and not require all that stuff when perfectly reasonable applications don't need them all the time.
Then those "perfectly reasonable" applications are free to eschew languages like Java. People do it all the time to great success. People also use Java to great success. But that's neither here nor there. My point is that it's unfair to call Java programs bloated when the extra space is necessary to support the runtime environment that makes Java Java. I'm not arguing the merits of such a thing (indeed, swap Java with literally any other language), I just want it to be clear that C and Java programs run differently, and both languages/runtimes, such as they are, were developed at different times and to serve different purposes, and therefore it's not correct to bemoan that Java programs are larger. That's like complaining that JavaScript doesn't give you direct memory access or that assembly doesn't have classes.
It's based on Electron[1] which has a reputation for being a bit of a resource hog. The upside is that it makes it really easy to create a cross-platform app.
Slack gets pretty resource-intensive when the user is part of multiple workspaces. I know one of my co-workers is part of three or four, whereas I'm only part of the main company workspace. Co-worker's Slack memory usage is around triple that of my own.
What's the advantages of using the client vs. using it as a tab in your browser? Tab in the browser seems to be working for me OK, once I figured out I could "pin" the tab in Firefox, which prevented me from accidentally closing it.
I work with three to four Adobe programs open for my workflow, even the browser version has a noticeable effect on performance. I actually run it on a $60 Amazon tablet next to my monitor (only because our organization insists on slack)
It shouldn't take more than 1MB, but a "power user" with the stock Slack desktop client will probably see RAM usage of 1.5 GB[1]. So* GP was referencing the fact that currently the Slack desktop client is using >1GB and that is way too much.
* I recognize your sarcasm, but figured I'd reply anyway since the internet is a weird place and lots of people might not catch the joke.
how is it taking up that much data? I'm at 550mbs with 6 very active teams and while on voice chat. Dropped out of voice chat I'm at 340mb. Each team has 10-20 channels.
I also use Discord which uses Electron and with it, I'm on 8 separate active servers with anywhere from 10-30 channels. This sits at 115mb without an issue.
Can you tell me where these electron metrics come from where people have slack take up 1gb or even 2gb of memory?
> I'm at 550mbs with 6 very active teams and while on voice chat. Dropped out of voice chat I'm at 340mb
That's still a lot of RAM for a chat with giant emojis.
You have to consider that people reporting these issues with memory consumption are running the app in different operating system than yours. Maybe your system is optimized. I just checked my co-workers computer and his main Slack process is at +97MB but there are 3 instances of "Slack Helper" at +433MB, +297MB and +255MB respectively. That's over 1GB in total. So either you are just looking at the main Slack process (which at +340MB makes sense) or your Slack is leaking memory somewhere that your RAM monitor is not able to map.
I checked. I'm at 360mb for 8 separate Slack processes grouped together. I'm on Windows 10, not sure if that matters.
There are no Slack helpers.
I'm not sure why you're this adamant about it.
I still it's quite a good deal given that my Discord instance has a similar feature-set and is accessing just as many channels/servers/teams as Slack but at a third of the memory.
> A chat client should not be taking over 1GB of RAM
Why do you care so much about RAM usage? All this concern over RAM is completely missing the picture here.
Every conversation about slack or electron people complain about RAM usage. The market could not give two shits about RAM usage so why does everyone on HN complain about it?
Probably because their $3000 desktops are grinding to a crawl under these unwieldy stacks of cruft. The market might not care but that's only because most users are too naive to realize that spending hundreds to thousands of dollars a year upgrading their phones and laptops is neither necessary nor desirable. Eventually consumers in this space will gain more awareness and these wasteful software development practices will have to end.
1GB of RAM is anywhere from 25-50% of the RAM available on the average new (let alone used) consumer-grade laptop. For a chat app. And that's not even factoring in the OS overhead.
That's fucking bonkers. Objectively and scientifically fucking bonkers.
Because when you combine that with the silly MS overhead from useless processes because the team that controls your Win 10 environment insists on running Group Policy without a care.. then you notice that your machine is suddenly bogged down, when it's been running fine for the years you had total control of it! !!