New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wire Web/Desktop constantly uses CPU during idle #2507
Comments
This is a regression I think, I am observing new significant degrade in battery life on notebook for similar reasons. (debug of CPU busy blames wire-desktop) - this DID NOT used to be a problem (at least for the recent past)
Here's the startup sequence: (it takes a VERY long time to "settle CPU")
Here's an "idle" scenario (after its been open for hours or whatever)
Sys Info:
Wire is wire desktop: 3.5.2881 2019.04.10.0901 (run out of appimage)
|
I also report similar CPU vs. chat behaviour. It doesn't seem to matter which conversation the app sits idle in. |
Any recent changes to suspect? I scanned briefly but not sure exactly when the regression was introduced so not sure how far back to go. |
Same here, it constantly eats 9% CPU. I've quit it for now, this is unreasonable. |
I am having the same issue. |
I checked on my Win10 system and the same idle CPU is happening there too :/ |
fwiw, I contacted support directly and they refuse to help; only "professional" tier users get support, and they don't support linux at all; (WTF) - if any1 here pays for a Pro license, please contact them and reference this |
I scanned past all the commits and stumbled over this 104bdd3 how to disable hardware acceleration in the AppImage? hmmm |
Try passing some of the following CLI args (or all of them):
Like |
Thx @vladimiry , 'twas simple enough. Tried both, had no affect on the CPU for this issue (as kind of expected), so that delivery is not related to this performance regression. |
@fermulator there are a lot more switches you could also try :) |
Open to trying to isolate, but that is too wide a spread. Really would appreciate maintainer/dev direction here on potential ways to root cause. |
Wire Helper: constant 6% CPU, Wire: constant 3% CPU. (MacOS Mojave) |
Adding to #2507 (comment), I have since learned that Chromium's sandbox doesn't work in Flatpak currently, so it has to be disabled. I have also since enabled full MDS mitigation ( |
Similar high CPU utilization in Windows. |
How do we get wire staff to pay attention here? 6 months later ... is this never going to be fixed? |
Hi folks, trying to nail this issue down. First thing: 2-4 % background CPU usage is normal for Electron apps. A spike to 10 % might come from incoming messages or outrunning timed messages. Further questions:
|
One of the Wire processes in htop eats 8% CPU here, whereas Signal (also Electron based) eats about 2% peak (about 0.6% on average). I didn't try disabling GPU yet. This is on Linux. I didn't want to jump to conclusions out of whatever kind of UNIX elitism bias I might have and give Electron apps a fair chance but if this is expected behaviour on Electron I have my doubts now. For reference, Wire is the difference between the laptop fan constantly spinning and not spinning at all on idle on my machine and firefox with hundreds of tabs uses less resources than Wire... |
It's eating about 7% on a overclocked 4.7ghz 10 core machine. Signal is at 0%. The larger your wire history, the worst it gets. |
@ffflorian my posting earlier shows the results w/ GPU disabled
Indeed I have also used other Electron apps (i.e. Slack) and it does not suffer from this. |
Per noted in #3338, interestingly it IS true if you minimize to tray the excessive CPU is reduced (suggesting indeed we have an aggressive refresh/activity graphically that gets paused while minimized).
|
2% when idle is still high, to be honest. Signal is at 0.6% when idle with the window still open. |
On MacOS I'm seeing >6% when the window is open and 3% even when the window is closed. No way is that acceptable for an app that shouldn't be doing anything except waiting for message to arrive. |
Also still happens with app.wire.com in latest Chrome on Linux. No other tab consumes as much CPU as Wire. |
If April 2021 hits, it will have been 2 years since this perf regression bug, being unfixed. If not fixed by then I'll be abandoning wire. @ffflorian |
7You are lucky getting just 6-7%, I get 13-15% on my Surface Pro 6 (i7/16GB) |
Hi, I am having the same issue in Linux. I am experimenting with the command cpulimit trying to see if there is a reasonable way to idle-ize and de-idle-ize the wire-desktop processes ... I am not an expert at all. So far I could list the processes involved using ps aux | grep wire-desktop | awk '{print $3,$2}' | sort -r then I pick the PID of the process with largest cpu load from the previous command and do cpulimit -l 1 -p PID_OF_THE_PROCESS It seems to calm down the cpu load. It's not a nice mitigation ... but maybe someone could improve this further? Thanks in advance! |
@xavim86 - note that if you CPU limit ... while this might help stave off the idle CPU, would this not stifle wire from performing "actual work" while in use? (i.e. voice or video calls) |
@fermulator - yes, you are right. My current (horrible) way to deal with Wire cpu load is to have one script to idle-ize processes names "wire-desktop" using cpulimit and let it run 'limited' for the notification icon to change thus indicating that some new message arrived or somebody calling me. Then, I de-idle-ize Wire with another script that kills the involved "cpulimit" process so that the program runs smoothly again. This is not practical at all and does not make me happy! I wish this would be solved in future updates of Wire Desktop... |
Given the age of this issue, and lack of official wire developer or support commitments to fix, I have no reason to believe it will ever be fixed at this point. :( |
I started complaining about CPU use in 2017. Nothing will ever be done. Look how hilarious this looks on an M1 Macbook. Wire is doing nothing and just burning that CPU. It's the renderer helper processes, just sitting there I guess drawing the same data forever in a loop with 30+ threads each. I just can't get through my head that someone has actually designed this to behave like this. |
Inspired by #2239 (comment) I took a closer look and indeed there is a loading spinner somewhere in the page, hidden inside a couple of
Now the https://app.wire.com/ browser window consumes much fewer resources. Unfortunately this doesn't really help the poor people who choose to run Wire in Electron as there's no uBlock in there. :-/ Anyway, I'll try reporting the issue to Chromium, so maybe this will get fixed in a couple years. |
@liskin the |
Before I removed it, the tab would consistently consume 10 % CPU on my i7-7500U. When I add that uBlock filter, it stays at zero. |
Reported to Chromium here: https://bugs.chromium.org/p/chromium/issues/detail?id=1206425 |
@liskin do you know if it's been reported to Mozilla yet? They are pretty responsive about bugs and would want to know. If not I'll try to do a report over there. |
@dbquarrel I didn't look there, feel free to go ahead. :-) |
Getting the same behaviour on an M1 Mac mini, macOS 11.4. The Wire Renderer constantly has 10-20% CPU usage, even when idle and off-screen (i.e. on a "desktop space" other than the current one). |
does a debug archive/log help? |
Pull request #5164 attempts to remove the LoadingSpinner contents from the DOM after the spinner has faded out. It seems to lower the idle CPU usage considerably - at least on Macs. |
I suspect that part of the issue on M1 Macs is that it's running under Rosetta 2. I have NO CLUE why there is no Universal Binary / Apple Silicon binary of Wire Desktop when we're nearly in 2022. |
We don't even have Linux ARM version. ARM Linux runs on a lot of hardware (laptops, tablets, smartphones, single board computers) and you are talking about Mac ARM which is niche of niches - only few laptop models from single vendor |
On Mon, Dec 20, 2021, at 15:01, alien2003 wrote:
> I suspect that part of the issue on M1 Macs is that it's running under Rosetta 2. I have NO CLUE why there is no Universal Binary / Apple Silicon binary of Wire Desktop when we're nearly in 2022.
>
We don't have even Linux ARM version. ARM Linux runs on a lot of hardware (laptops, tablets, smartphones, single board computers) and you are talking about Mac ARM which is niche of niches - only few laptop models from single vendor
To clear some misconceptions in your note here:
1. all of Apple's laptops are now M1 ARM: (Air and Pro models both, Apple will no longer make Intel based laptops)
2. Apple's Mac Mini has transitioned to M1 ARM
3. Apple's iMac 24" has transitioned to M1 ARM
This leaves Apple with two Intel based products, the Mac Pro (if you want to use the word "niche" there must be only one of these sold for every thousand laptops or something like this), and the iMac 27" (which will almost certainly follow the 24" during the next product refresh).
So, reality is that M1 ARM is the default architecture for Apple at this point. Treating Intel as the default architecture is wrong and calling it "niche of niches" is misinformed.
Lastly, compiling for M1 is literally adding a compiler flag.
Wire's development group is traditionally looking at the wrong thing, for instance it took the community four years of hassling the developers about CPU use being extremely high while the app is idle, to have these responses:
a. silence
b. we will look at it at some point
c. closing threads
It took the user community to solve the CPU issues in the end.
If now the community is going to have to educate about what Apple is using for their hardware, we're into another four years of this.
That said, Rosetta 2 is extremely effective though a native compile is much, much better. Having recompiled all of my own code for M1 simply by checking off a box in Xcode and having no problem, with some of my code authored as far back as 1988 in C, and using a mix of C, C++, Objective-C and Swift, I find there is little to no excuse for anyone to claim that M1 is niche of niches and so acceptable to ignore. Furthermore the architecture is already supported via iPhone builds which have existed since the beginning.
Ignoring M1 is not the approach of Adobe, Microsoft, etc.
Yes we will always have an ocean of Intel based products that will always be everyone's focus, but the point here is that M1 is more important than is claimed and should not be ignored.
|
@dbquarrel nailed it. In addition, Wire already has an ARM build for Apple devices - the iOS version! In fact, they could opt-in to the iPad version being available in the M1 App Store, without needing to recompile or do anything, but instead have chosen to purposely disable this. Some apps (eg. Plex) allow for both the macOS and iOS versions to be used on Apple Silicon whilst they're transitioning to a single, unified application. In addition to it largely being a compiler flag, all of the fundamental bits and pieces for Wire Desktop have had M1 support for a significant period of time precisely because it is not a "niche of niches". Electron, for instance, has had M1 support since November 2020, 5 major releases ago. |
Can confirm; Issue is now resolved. (Linux)
|
Wire version: 3.9.2895
Wire for web version: 2019.04.10.0901
Operating system: Linux (Arch-KDE)
What steps will reproduce the problem?
What is the expected result?
No CPU usage and minimal CPU usage in intervals if needed.
What is the actual result?
Constant CPU usage of 2-4% with some spikes upto 10% in regular interval
Workarounds I tried-
Searched across issues and found few like these which are quite old & irrelevant.
Strange findings-
A note about screenshots - Every Electron instance running in this pic is from Wire. This doesn't happen with other electron applications. I took extreme care before capturing these screenshots verifying it's only the Wire running and also did check whether killing wire would terminate these processes too. Yes, they did terminate if I kill wire.
'
The text was updated successfully, but these errors were encountered: