- Windows Latest discovered Discord and other Chromium and Electron-based applications with high RAM usage
- RAM usage spikes from 1GB to 4GB on Discord both in and out of voice chat
And here I am resurrecting Dell laptops from 2010 with 1.5gb DDR RAM and Debian
I remember how the combination of Internet mass distribution of file data and the blossoming gray market for file-share applications really super-charged the technology of file compression.
I wonder if we’ll see skyrocketing RAM prices put economic pressure on the system bloat rampant through modern OSes.
I have couple of old 8 gb sticks from my old 960 GPU pc. Is there any way for me to stick it onto my new pc and have only certain app use it and nothing else?
As to whether it’s possible to get certain apps use specific physical RAM sticks, I am not sure, but that seems unlikely and would probably require some very low level modifications to your operating system. But even before you get to that point you’d have to physically connect them to your new motherboard, which will only work if there are both free RAM slots on it, and your new motherboard has slots for the same generation of RAM that your old PC uses.
Doubt it
Yeah, the RAM shortage is definitely to blame on Electron. Won’t someone please think of the poor AI companies who have to give an arm and a leg to get a single stick of RAM!
And the Apollo was launched with 4KB of ram.
I’m tired of this! How can we start our own RAM foundry–is that the right term? Surely there’s a YT tutorial somewhere.
Big RAM hates this one little trick!
Limitation breeds innovation
Just another AI agent bro, that will fix th
Out of Memory or System Resources. Close some windows or programs and try again.
Like a rust based alternative to VSCode
I guess the prices give us a new kind of issue ticket template; “new RAM is too expensive for me, please consider optimizing”
Less abstract, more concrete than “take less of a share please”
Electron should be a system dependency entirely so that every single app doesn’t have to be individually updated whenever there’s a chromium CVE which seems to be weekly.
I wouldn’t mind them all using HTML for UI if they’d learn to share the same one, and only load it when they need to show me something.
No, Razer, your “mouse driver” does not need to load Chrome at all times, when I’ll only ever look at it once.
No, Razer, your “mouse driver” does not need to load Chrome at all times, when I’ll only ever look at it once.
It’s funny; on Linux such devices work perfectly but many users complain that they “aren’t supported” because there’s no UI (that sits uselessly in your notification area and eats memory).
It’s because people want cross-platform apps and web is the easiest way to do it. Yes, you have Flutter, KML or Qt but those are often hard to work with (looking at you, Flutter) or it’s difficult to find devs that can work with them. You choose web (JS/wasm) and you have plenty of devs familiar with the tools and you can support all the platform easily. I’m using Tauri for my personal projects because it’s fun and easy. I could use Qt but I don’t want to work with C++ or Python, at least not in my spare time. If anyone can recommend me a nice framework supporting Linux and Android and using modern language I might switch. I haven’t found one.
I have been really enjoying working with Avalonia, it is a .NET library that works across windows, Linux, and Mac and allows you to use C# for desktop app development on those environments. Its what MAUI should have been.
It’s because there is no such thing as optimisation anymore. Websites are bloated to the gills with terrible animations and tracking scripts.
Programs. They are called programs . We are talking about desktop machines, not mobile devices
It’s because people want cross-platform apps and web is the easiest way to do it.
Just use the website then? There already is a suitable browser installed on every system. But no, must have apps. Makes it easier to stop people from having opinions about data collection and such. And the full browser stack needs to be fully reproduced each time. It gets really ridiculous when these apps sit idly in the notification area. Not to speak of security implications because electron apps and such usually don’t get timely updates.
Just use the website then?
It is a good solution for some apps but if you need to store data locally, use push notifications, run something in the background or access any native APIs you have to go with a native app.
All major browsers can do this - with the exception of running something in the background I guess. But that is exactly the sort of usage scenario where an Electron app is the worst choice. Coding a separate utility with no GUI would be the sane thing to do here, not put whole browser stacks into memory.
Pretty sure PWAs can run in the background.
You’re actually right, by now browsers have APIs to do most of the things apps do. Technically you could convert most apps to websites. I guess as a user I just don’t want all my apps to open a tab in my browser. I want to move apps between virtual desktops and monitors independently and I don’t want my app’s window to be clattered by all the menus from my browser. On mobile I also prefer switching between apps than between different tabs. For me the best compromise is:
- for system tools that don’t have to be cross platform and critical apps write native apps
- for small/medium cross platform apps use webviews like Webview2 or Tauri
- for big apps like Teams or Discord just use a website
I guess as a user I just don’t want all my apps to open a tab in my browser. I want to move apps between virtual desktops and monitors independently and I don’t want my app’s window to be clattered by all the menus from my browser.
All this is already possible with most browsers.
Do you know any websites that integrate into Linux desktop and Android like native apps? I mean I can run it from cmd/icon, and it opens as new window without any decorations? I never saw it but if it’s works fine it’s an interesting option.
Those are called Progressive Web Apps (PWA). You can use firefox to add the website to your desktop like this: https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Installing
Once you do, when you open the app it should have just the website without the tabs and everything else firefox does.
The proliferation of electron programs is what happens when you have a decade of annoying idiots saying “unused memory is wasted memory,” hand-in-hand with lazy developers or unscrupulous managers who are externalizing their development costs onto everybody else by writing inefficient programs that waste more and more of our compute and RAM, which necessitates the rest of us having to buy even better hardware to keep up.
annoying idiots saying “unused memory is wasted memory,”
The original intent of this saying was different, but ya it’s been co-opted into something else
Native apps are so much better, on every platform.
The JavaScript must flow….
I really wish Electron wasn’t as popular as it is. It’s such a fucking memory hog. I mean, sure, I’ve got RAM to spare, but I shouldn’t need that much for a single app.
Yes, it runs a separate browser instance for each electron program. Many of the programs that use it could just be a PWA instead.
This is what bothers me so much… Browsers should be improving their PWA implementation (looking at you, Firefox) and electron apps should be PWAs more often. Another decent middle ground Is Tauri. SilverBullet and Yaak are both so much lighter and better than anything else on my system.
Yeah but companies want full control and no ad blockers. That’s why they’re pushing shoddy Electron apps over their web experiences and PWAs.
I wonder how much exact duplication each process has?
https://www.kernel.org/doc/html/latest/admin-guide/mm/ksm.html
Kernel Samepage Merging
KSM is a memory-saving de-duplication feature, enabled by CONFIG_KSM=y, added to the Linux kernel in 2.6.32. See mm/ksm.c for its implementation, and http://lwn.net/Articles/306704/ and https://lwn.net/Articles/330589/
KSM was originally developed for use with KVM (where it was known as Kernel Shared Memory), to fit more virtual machines into physical memory, by sharing the data common between them. But it can be useful to any application which generates many instances of the same data.
The KSM daemon ksmd periodically scans those areas of user memory which have been registered with it, looking for pages of identical content which can be replaced by a single write-protected page (which is automatically copied if a process later wants to update its content). The amount of pages that KSM daemon scans in a single pass and the time between the passes are configured using sysfs interface
KSM only operates on those areas of address space which an application has advised to be likely candidates for merging, by using the madvise(2) system call:
int madvise(addr, length, MADV_MERGEABLE)One imagines that one could maybe make a library interposer to induce use of that.
I guess the key is it has to be the same version of electron in the back end. If they change too much of it then how much memory can be shared?
I tried the PWA route with Discord. It wouldn’t stay logged in, and acted generally janky. That said, I do PWA with any app that’s Electron, at least to try and avoid the RAM bloat.
maybe a toggle to choose between “take some extra RAM, I’m feeling generous” and “fuck you, I’m computing shit over here” could be used to let the app know your current mood / needs …
Memory hogging browsers usually do release memory when pressured. You can take it further by getting extensions that unload unused tabs.
The problem is electron apps that load the whole browser core over and over.
Tauri is the way to go ; so that every app doesn’t each embed another web browser that makes for 90% of the file size.
Is the Rust backend mandatory?
In Tauri, the rust backend is the glue between web/js and OS functions. Yet you don’t need to do any rust code, it’s delivered ready.
If your app interfaces with the OS, like most apps would (reading a file, managing the window, etc), then you would be writing rust, no?
Let’s say you are a webdeveloper trying to package your js app into a executable.
Tauri makes it so that it embeds your js into a rust base, and if you need to interact with the os, you have a Tauri JS API which calls predefined rust functions embedded in the executable.
You can literally never write rust code while using tauri.
But they givr you the choice, since rust is faster than compiled js, you also can create rust functions which you then call from your js code.
Of course all must rust, return to the oxide!
If there’s any silver lining to this, perhaps we can get a renewed interest in efficient open-source software designed to work well on older hardware, and less e-waste.
“It sounds like you want low-end devices to be turned into thin clients for cloud-based operating systems. Do I have that right?”
Why would you do that when you can pull 50 JavaScript libraries and wrap it in Electron?
That’ll be 800€ and all change you own.
If there’s any silver lining to this, fuck JavaScript, fuck JavaScript wrappers and fuck all people picked JavaScript for the programming language of anything cross-platform.
It’s unbelievable I would need 6 gbs of RAM to say a simple “hello” to my friends. It used to take 300kb with IRC.
that has very little to do with JavaScript though 🤷♂️
Maybe not Javascript as a language, but the framework it requires to get applications written with it running, which is a lot. And in a roundabout way, it kinda has a little to do with the language itself, as the reason electron got so popular in the first place is because it catered to web developers who either couldn’t be bothered or couldn’t figure out proper desktop app devlopment, so they went with the easy short-term path. And Javascript kinda is an easy language to pick up and write simple.projects in - now, maintaining more complex applications with it is another story.,.
It has less to do with JavaScript as most people tend to think IMO. JavaScript does not require Electron to exist, it’s rather the other way around. The fact that Electron ships a whole browser is the culprit and you could even argue that V8 is bloated as well, though I’m not sure how efficient it is built and how much size it takes. Browsers historically need to support so much legacy stuff which is another main factor for its size. I really hope for stuff like Tauri or Servo to gain traction.
you could even argue that V8 is bloated as well
Not really, no. It’s very compact compared to Python, Java or most anything comparable. A compiled program would be smaller, of course, and Lua is minuscule next to anything — but otherwise V8 is small and fast. Iirc Node.js takes something like 30 MB out of the box, including its modules and libraries.
Morgan Freeman: ”They couldn’t”
I wish we could, but it’s tough to maintain optimism in the face of these sociopathic corporations’ seemingly ever-growing power
Open source developers are just like you and me. They’ll get fed up with the bullshit and start developing things they need with the resources they have, just like they’ve always done.
It’s always been there, why is there so many great Open Source Software out there ? Even Linus started the linux kernel because he could not afford Unix.
I’d love to see games do this because they are clearly not being optimized. Can’t wait to see that not happen.
Good thing, I’m happy with retro games and the occasional indie.
3/5 of the way through 100% Final Fantasy II. Figure by the time I catch up to modern final fantasy either hardware will be better again or people will optimize again. Either way I got time
US 2 or JP 2?
US 2 is so good, but the late game seeed to have a difficulty spike so I never finished it.
I’m doing the pixel remasters which I think are based more on original JP. I know some purists look down on them but I think overall they’re a solid version.
Why spend time making better software when the end user can just buy better hardware!
That’s been the thinking for the last couple of decades at least. But it can’t continue if people can’t afford new hardware.
Hardware doesnt need to get more powerful either. If we actually harnessed it, we have what we need already.
















