3 ms·
What do you find lacking in Electron's performance? Compared to all competing UI frameworks it isn't really any different, except it allows for faster and easie
by nukeop 9y ago
What do you find lacking in Electron's performance? Compared to all competing UI frameworks it isn't really any different, except it allows for faster and easier development and deployment.
- adolfojp 9y agoIt wastes tons of memory.
- nukeop 9y agoI don't think 100-150MB is a "ton",and I don't think it's "wasted". It's actually as much as a single tab of a browser. If it takes much more, it's not Electron's fault, it's the program's developer's - memory leaks are not uncommon in javascript SPAs.
- dvfjsdhgfv 9y agoFirst of all, it's not 100-150. If it stopped at that, nobody would even care to mention this huge problem. What you get in real life is something like 800 MB for memory alone, and CPU usage can be similarly high. There are legitimate reasons to use that much resources, just not by the GUI. Really, it's as if all this fundamental computer science, O(n), finding the shortest path, all these efforts in optimization that we do at universities - as if all this just went down the drain and the moment you leave the CS department you say, "Ah, screw all this, I'll just allocate all I can, just in case". This is just so wasteful and it really makes me sad that so few people care.
- SquareWheel 9y agoI just launched Discord, the heaviest Electron app I have installed, and it idles at 135 MB of memory. I'm not seeing anything close to 800 MB being used.
- matwood 9y agoMake sure to add all of the helper processes together. Slack plus all of its helpers is currently using 1.2GB of RAM on my MBP. Each Slack group I'm a part of adds 300-500MB to that total.
- SquareWheel 9y agoThe 135 MB was the total of all sub-processes. https://i.imgur.com/1ZEffk6.png https://i.imgur.com/1ZEffk6.png
- dictum 9y agoIt's more that all the optimizations and strategies which apply to a browser built to hold many open tabs at once, support many standards and protocols and quirks etc. must be loaded into memory for a simple application that is not a browser. You get all the tradeoffs of Chrome (e.g. cache everything you come by) outside of Chrome proper.
- nukeop 9y agoA browser (or Electron) does not allocate as much memory as it can on a whim, every byte of that memory is used to bring you features, caching, and so on. What program have you seen that takes 800 MB of memory? And why would a modern GUI program not utilise memory if it's available and it's free in order to cache data, requests, build an in-memory database, and so on? Browser programming is a lot more than finding the shortest path in a graph. It's commonplace to have 4-10GB of free memory at any given time and it should be utilised if it's available instead of being wasted by being unused.
- dvfjsdhgfv 9y ago> It's commonplace to have 4-10GB of free memory at any given time and it should be utilised if it's available instead of being wasted by being unused. I'm not sure when this became the new normal, but I was taught the exact opposite. How about trying to squeeze that into 200 MB rather than allocating 4-10 GB just because it happens to be available at that moment?
- nukeop 9y agoFor some purposes, you can't "squeeze that into 200 MB", especially for caching. If you have memory that's lying around empty, what is the point of having it at all if it's wasted 99% of the time? Is it a virtue in itself to under-utilize resources you have available? Is it good if a company employs a 100 people but only 15 of them do work and the rest is idle?
- dvfjsdhgfv 9y agoFirst of all, yes you can, even easily - provided that you use a different GUI toolkit. 200 MB is a huge amount of memory anyway, in many cases you can do much better. Electron fans like to talk about caching, but really, that's a browser issue, it has nothing to do with GUIs, at least not with traditional ones. Why should you need to cache any GUI elements if you can (re)create a thousand dialogs in a blink of an eye? Maybe you can cache the _data_ in those windows, but that's a completely different thing, and the memory used is usually some orders of magnitude lower. Now, as for using all available memory: that's exactly the reasoning that causes so much problems for users, and that's why after so many years of hardware upgrades our machines still feel sluggish: using all resources for your app, only because they happen to be free at that moment, is not OK. First of all, they are free now, but they might not be a moment later (because another brilliant app author has the same idea and tries to allocate everything). Second, the resources should be used in a reasonable way. If a piece software doing extremely simple computation is suddenly allocating a few gigs of RAM and takes over all cores, my thought isn't "Oh, what an efficient app, it's using all these resources I don't need", but I wonder what went wrong! What is perfectly OK for, say, a 3D rendering node, is completely wrong for an app that could do the same thing with 10x lower resource usage. I'm not sure if I am able to explain it in more clear terms.
- dingo_bat 9y agoSo if it uses up to 150MB, it is not wasted and if it uses more then it's the user's (dev building on electron) fault. Got it. Electron is never at fault.
- imtringued 9y agoI use firefox and according to about:memory gitter uses about 20MB per tab and rocketchat about 50MB. Those at are the biggest memory hogs. The average tab with a static page uses around 4-5MB. On the other hand I see a lot of "fixed" cost These values may not be accurate because they don't include images but they are still very far away from a blanket statement like "150MB per tab". Clearly we can see that electron has a lot of room for potential and if they fix these flaws there would be no need to critize it, yet they don't even give the slightest damn about it.