个人效率Reddit 原帖

Almost every 3rd party mac app is a ram hog now, devs please

完整上下文原始内容 · Reddit

I know this isn’t new but it still pisses me off every time i open activity monitor when the app starts slowing down why is Notion using a ridiculous amount of ram just to manage notes and docs why is ChatGPT sitting there taking up more memory than apps doing actual heavy work and somehow almost every third party app on mac is the same now I know these are all electron apps but It feels like nobody cares about optimization anymore. My 16 GB RAM feels like the bare minimum now, which is insane considering what most of these apps actually do. I think I'll have to upgrade now.

01需求标签
个人效率性能改进桌面应用未解决

已收集讨论

25 条已收集

25条已收集84条 Reddit 标称评论
u/miklosp

Electron. Every one of those apps are basically running a Chrome instance. Not sure you can optimise much.

u/Alkumist回复

Not only that, but they each have their own install of chromium and all its resources, so every application is duplicating the amount of junk running instead of a system library that all “electron” apps could use in a single location

u/thievingfour

There are so many misconceptions about this topic I feel the need to write a post

u/jakecoolguy回复

You really should! Reading through here a lot of people really think using RAM is always bad... when it's often because the app is using the free/unused RAM to be way more responsive. Also, but not all web technology apps are bad. While electron is bloated as hell with chromium. Things like Tauri are the opposite

u/thievingfour回复

Wow the thread got a lot more comments since I last checked and I can't tell if people are just joking or not but I'm partially concerned that people will read threads like this for information purposes and actually believe the things being said here. If I may, a slight pushback on your comment: You're right that using RAM is not bad, it's good. What some people here are trying to articulate is that using more RAM than necessary is what's bad. Web tech is notorious for this, as a lot of memory goes toward maintain the layers of abstraction between the OS and the application. And that's to say nothing of the completely wasted structures such as: Geolocation, Accelerometer, Bluetooth, Gamepad. Not loaded in, but the idea that it all ships with your note taking app is what I'm calling attention to. "Unused RAM is wasted RAM" is technically true, but it's a fact that has almost no value. It's like with bundle size. For the apps that rely on a NodeJS runtime, just the Node runtime is ~80 MB, maybe more now, where a 1:1 comparable binary in Swift or Rust would be 250-500KB. So all that remaining space goes not to added functionality, but toward maintaining the abstraction between JS and your OS. On a long enough time scale, there's no way around it: this is waste. I mention time scale because I do believe there is a place for Node/web tech for short to medium-term betas. Even native purist developers have less experience than how they come across, specifically because they often have never touched the technologies they criticize. There are numerous native apps that consume as much memory as Electron apps. The main difference is that if they knew how to optimize them, their efforts go a lot farther being native. Re: Tauri, it's actually unfortunately used in a very similar style to Electron, so a lot of developers actually nullify many of the performance gains outside of bundle size (which is much more valuable than people seem to be aware). Tauri is not the opposite. Removing Chromium doesn't mean you escape the overhead of rendering with a web engine, which people often put frameworks like React on top of, but Tauri does give more experienced devs the optionality for more speed and memory efficiency on the upper end of feature complexity.

u/No-Object1384

I really wish I could get rid of all the Electron apps on my device, but sadly there are a handful of them that I am forced to keep for work that are a constant drag on system resources.

u/magicdoorai

Yep, the Electron tax is real. Some apps genuinely need a browser engine, but for tiny file edits it feels silly to boot a whole Chrome-shaped spaceship. I built markjason for the opposite end: native macOS, just .md/.json/.env, ~100MB RAM and fast cold start. Mostly for the moments where opening VS Code or Notion just to tweak one file feels ridiculous: markjason.sh

u/haystack_in_needle

Electron is the obvious answer here, but the more interesting question is why so many developers keep choosing it. It's not that they don't care about your RAM. It's that the web ecosystem has open-source solutions for an enormous number of product problems. If you're building a web app, almost every feature you can think of is just an npm install away. Rich text editors, high-performance tables, syntax highlighting, diff views, file uploaders, and command palettes. On native macOS, a lot of those building blocks are either missing, outdated, or scattered across abandoned repos. Even something basic—like a reliable text editor with line numbers or a smooth side-by-side diff view—becomes weeks of foundational work on the native path before you even touch your actual product. I prefer native Mac apps too, and I wish the reality were different. But until Swift and SwiftUI develop a massive, open-source ecosystem for common app components, we’re going to get more webview-based desktop apps, not fewer.

u/ContextSpiritual9068

the Notion thing drives me crazy. it's a note app. why does it need 600MB sitting idle. switched to Obsidian and the difference is night and day, it uses maybe 80MB on a heavy vault. native apps really do matter.

u/srikat回复

Obsidian is built on Electron. It's not a native Mac app afaik.

u/Interesting_Yak_1472

Many people in this thread are saying it’s Electron, and others are saying unused RAM is wasted RAM. But I think we need to look at the fact that many of those apps are dead simple and simply don’t warrant 800 MB of RAM used, no matter the underlying technology. I think it comes from people importing frameworks when they need 5% of their functionality, not realizing that the framework then spins up a whole system underneath to be able to provide the rest of the functionality that the developer then never uses. Aside from RAM consumption, have you noticed just how long it takes to launch those apps? What are they doing there?

u/Efficient_Leave_7462

Mac's memory management can be quite misleading for the general population. Even if Activity Monitor indicates that 16/16 GB of RAM is being used, it doesn't necessarily mean all of it is actually unavailable. macOS employs a strategy of reserved memory allocation and a concept called memory pressure. Unless macOS determines that another application requires more memory, it won't actively clear or release memory that was previously allocated. Therefore, it's more informative to observe the memory pressure graph. if it's green, everything is under control. you should only be concerned if it turns red.

u/AndyDentPerth

I just ran my app, which is pure Native SwiftUI and had a look in Activity Monitor. Running a full-screen preview (on Macbook 16") particle window (SpriteKit) as well as editing another document was less memory than most of the Evernote Helper processes. These seem to be spawned one-per open Evernote window! I knew Evernote has been using JS-based editors forever and their UI mostly moved to web-based. Inside their windows, if you hit F12, the web debugging console appears. I hadn't had it rubbed in so much the overhead being accumulated just by having a few reference windows open.

u/jakecoolguy

A common thing people don’t realise: Unused RAM is basically wasted RAM. Using it makes it load faster and be more responsive (because things are already in memory) Using RAM ≠ Bad Using RAM + (not clearing it if another app needs it OR using more RAM than you have) = Bad

u/TheSyd回复

It depends. If an utility that is meant to run in the background is using a lot of ram that is not just cache, it is simply bad.

u/No-Object1384回复

But more programs using excess RAM costs more battery life, right? I assume the "unused RAM is wasted RAM" argument only works if you're plugged in.

u/Downtown-Art2865

I find it ridiculous that Notion is sitting at 600MB+ idle for notes. Many third-party apps I open these days is the same. It's almost always Electron-based, which includes a full browser regardless of whether the app actually needs it. The native apps I've preferred stay under 150MB easy. With 16GB of RAM, it now feels like the minimal amount needed.

u/ka-mi-ru

I hear you. But it's worth mentioning that some slowdowns aren't always due to memory constraints. If your app feels like it's slowing down but your Activity Monitor memory pressure is low, then even if most of your memory is taken, it's all fine. macOS can sometimes optimise various processes to take more RAM - for caching, for example. Generally, if your memory pressure shows in the green, your slowing-down app may be doing that for other reasons (the app itself isn't optimised, etc.).

u/data-center

Agree with the general sentiment. I prefer native apps too. But it’s not that Electron apps can’t be performant. Electron does have overhead, but a lot of the bad experience comes from teams prioritizing shipping speed over optimization, memory usage, and startup time. Also, if most testing happens on high-end dev machines, the real issues often don’t surface until regular users hit them.

u/Working_Incident_231回复

Not only that, but they often don’t put any effort into trying to match any design language up with the UI. I think if your app has any flaws AND it clearly feels like a Windows app ported to MacOS they’ll be more readily noticed than something that at least looks native. It’s funny how often people hold out as a positive example an app they assume is native but is totally electron, it’s just electron done properly.

u/Warlock2111

I mean you could always use non-electron note taking apps, that don't hog memory and are performant. There's plenty to go around.

u/stark37

devs should make native apps but have to develop and maintaining multiple codebases is expensive so Electron. More devs and companies should use "Tauri" or other similar tools, Way less resource hungry ports.