thunderbird indeterminate xul:progressmeter progress bar activity puts CPU at 20% - 100%
Categories
(Thunderbird :: Mail Window Front End, defect)
Tracking
(thunderbird_esr78 wontfix)
Tracking | Status | |
---|---|---|
thunderbird_esr78 | --- | wontfix |
People
(Reporter: hunteke, Assigned: Paenglab)
References
(Depends on 1 open bug)
Details
(Keywords: leave-open, perf, Whiteboard: [battery][dupeme?])
Attachments
(5 files, 1 obsolete file)
Reporter | ||
Comment 1•15 years ago
|
||
Comment 2•15 years ago
|
||
Reporter | ||
Comment 3•15 years ago
|
||
Reporter | ||
Comment 4•15 years ago
|
||
Comment 5•14 years ago
|
||
Reporter | ||
Comment 6•14 years ago
|
||
Comment 7•14 years ago
|
||
Reporter | ||
Comment 8•14 years ago
|
||
Comment 9•14 years ago
|
||
Comment 10•13 years ago
|
||
Comment 11•13 years ago
|
||
Reporter | ||
Comment 12•13 years ago
|
||
Comment 13•13 years ago
|
||
Updated•13 years ago
|
Comment 14•13 years ago
|
||
Comment 15•13 years ago
|
||
Reporter | ||
Comment 16•13 years ago
|
||
Comment 17•13 years ago
|
||
Reporter | ||
Comment 18•13 years ago
|
||
Comment 19•12 years ago
|
||
Comment 20•12 years ago
|
||
Comment 21•12 years ago
|
||
Comment 22•12 years ago
|
||
Comment 23•12 years ago
|
||
Comment 24•12 years ago
|
||
Comment 25•12 years ago
|
||
Comment 26•11 years ago
|
||
Comment 27•11 years ago
|
||
Comment 28•11 years ago
|
||
Comment 30•11 years ago
|
||
Comment 31•11 years ago
|
||
Comment 32•11 years ago
|
||
Comment 34•11 years ago
|
||
Updated•11 years ago
|
Comment 35•11 years ago
|
||
Reporter | ||
Comment 36•11 years ago
|
||
Comment 37•10 years ago
|
||
Comment 38•10 years ago
|
||
Comment 39•10 years ago
|
||
Comment 40•10 years ago
|
||
Comment 41•10 years ago
|
||
Comment 43•8 years ago
|
||
Comment 44•8 years ago
|
||
Comment 45•8 years ago
|
||
Comment 46•7 years ago
|
||
Comment 47•7 years ago
|
||
Comment 48•7 years ago
|
||
Comment 49•7 years ago
|
||
Comment 50•7 years ago
|
||
Updated•7 years ago
|
Comment 51•7 years ago
|
||
Comment 52•7 years ago
|
||
Comment 53•7 years ago
|
||
Comment 54•7 years ago
|
||
Comment 55•7 years ago
|
||
Updated•7 years ago
|
Updated•6 years ago
|
Comment 56•5 years ago
|
||
What hope do we have to get away from indeterminate xul:progressmeter for linux (ref comment 47) ?
... for all our dialogs. Unsure if same issue exists anywhere in calendar-land (see "see also" links)
Comment 57•5 years ago
|
||
str |
xul:progressmeter was converted to html:progress. But looks like it's still reproducible at least on linux.
In scratchpad or console, do
document.getElementById("tabmail-container").appendChild(document.createElementNS("http://www.w3.org/1999/xhtml", "progress"));
... and check CPU usage. For me it goes to around 20% and stays there.
Can also reproduce on Firefox nightly. There in the Developer Tools | Console
document.getElementById("urlbar").appendChild(document.createElementNS("http://www.w3.org/1999/xhtml", "progress"));
The only difference is that there it jumps from listing Firefox to "GPU process" and back. It's still Firefox causing it.
Comment 58•5 years ago
|
||
There's only a few which are indeterminate and they're important for providing feedback to the user that something is happening. I think the best solution, if any, is to chase the toolkit people to fix their widget. FWIW I've not had a problem with this thing for years but it probably does use more CPU than necessary, about 6% of a CPU for me.
Comment 59•5 years ago
|
||
Thanks for the info.
To reemphasize the big problems: a) even at modest amounts of CPU, it sucks battery life, b) at modest amounts (above 5-10%?, I forget the range) it impacts responsivesness when getting new mail, c) to make it worse we have (or at least have had) situations where the progress meter lingers, and even sometimes never goes away due to other brokenness so the CPU usage can be continuous.
(In reply to Geoff Lankow (:darktrojan) from comment #58)
... I think the best solution, if any, is to chase the toolkit people to fix their widget.
So far after 10 years in bug 854093 that hasn't worked out so well for linux. (or do we need something else?) Does someone know stransky or do we have some other friend?
On the windows side this required aceman and our friend Neil in bug 658829 (ref bug 791535 comment 19). But even there we still might have an edge case per bug 658829 comment 97.
Comment 60•5 years ago
|
||
Thunderbird 68.2.1 on Linux, I can confirm that this issue still exists, with createElementNS() as given above, and the SMTP sending progress bar from bug 742697, and the IMAP loading progress bar in the status bar when switching between folders.
15-20% CPU usage.
Comment 61•5 years ago
|
||
How can you match the generated <html:progress> tag with userChrome.css ?
I'd like to style it differently to check how the performance behaves, or hide it, but I don't know how to match it, only its parent #statusbar-progresspanel
.
Comment 62•5 years ago
|
||
workaround |
Workaround:
I found that disabling the indeterminate progress progress bar is not enough; the spinning throbber in the tab is also responsible for CPU usage.
I'm using the below in my Thunderbird profile folder's chrome/userChrome.css
to disable both, resulting in the 15-20% CPU usage disappearing:
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* nh2: Progress bar CPU usage fix. */
/* For some stupid reason we can't match the html:progress that's the first child of this container.
See https://bugzilla.mozilla.org/show_bug.cgi?id=562977#c61
So we can't style the progress bar so that it does doesn't get shown only when
indeterminate (which takes the most CPU), or style it to render faster.
So for now we hide the entire parent container, thus getting rid of the progress bar entirely.
*/
#statusbar-progresspanel {
display: none;
}
/* nh2: Tab throbber animations also take a lot of CPU; hide them.
Unfortunately I didn't find a way to replace them by a static image.
*/
.tab-throbber[busy] {
display: none !important;
}
.tab-throbber[progress] {
display: none !important;
}
Comment 63•5 years ago
|
||
This user chrome is a real battery saver! Thanks! ...and the throbber in the mouse pointer still tells me if thunderbird is busy.
If I understand this right we now have 2 things that are rendered in the same thread and that use 100% of one CPU (indicated as 50% of the CPU power of a 2-CPU-System, 20% of the CPU power of a 5-cpu-system and 12,5% of the CPU power of an 8-cpu one) if they get the chance of doing so. ...or was the progress meter a Red Herring and it was only the throbber all along?
100% of one CPU normally doesn't indicate that something is amiss: The CPU could be asleep 99% of the time and be busy 1% of the remaining time. But the battery drain throbber+progress meter and generate seems to indicate that the CPU won't sleep while there is indeterminate progress...
Assignee | ||
Comment 64•5 years ago
|
||
Gunter, you could only apply the rule for #statusbar-progresspanel and check how the CPU usage is with only the throbber spinning.
Comment 65•5 years ago
|
||
I have already tested that.
- Only throbber: ~15-20% CPU usage
- Only progress bar: ~15-20% CPU usage
- Both throbber and progress bar: ~15-20% CPU usage
- Both disabled: no CPU usage
@Gunter: I measured CPU usage on Linux with htop
, where the percentage is always relative to 1 core. 15% means 15% of 1 core. Using full 2 cores would show up as 200%.
100% of one CPU normally doesn't indicate that something is amiss: The CPU could be asleep 99% of the time and be busy 1% of the remaining time.
I don't understand this sentence. If the CPU is asleep 99% of the time, CPU usage in htop
should show up as roughly 1%, not 100%.
Assignee | ||
Comment 66•5 years ago
|
||
(In reply to Niklas Hambüchen from comment #65)
I have already tested that.
- Only throbber: ~15-20% CPU usage
- Only progress bar: ~15-20% CPU usage
- Both throbber and progress bar: ~15-20% CPU usage
- Both disabled: no CPU usage
Strange that both together use the same CPU like when only one is active.
Please could you try
.tab-throbber[busy] {
list-style-image: none !important;
}
Then I can see if the animated PNG is the cause of the CPU usage.
Comment 67•5 years ago
|
||
Yes, list-style-image: none !important;
also fixes it.
Strange that both together use the same CPU like when only one is active.
I don't find that strange: Using either progress bar or animated PNG throbber, the screen now has to be drawn at many frames per second. Once you have to redraw, redrawing a bit more doesn't make a big difference.
Separetely: Also useful to know for posterity, the upgrade from Thunderbird 60 to 68 made the indeterminate progress bar a lot more jumpy (it looks like around 10 FPS while the original was much smoother) - but to my surprise that increased jumpiness still didn't reduce CPU usage a lot.
Updated•4 years ago
|
Comment 68•4 years ago
|
||
Richard, given the most recent bug comments, is a Thunderbird solution possible without addressing bug 854093?
Comment 69•4 years ago
|
||
str |
I really wonder why even after 11+ years this is still not fixed and
reporters like me have been bugged multiple times with needless Needinfo requests?!?
As I wrote several times over several years at several places in this bug tracker:
The problem is easily reproducible with any TB version (meanwhile including 78.4.2.).
Again: just enter an IP address such as 1.2.3.4 as the server name/address.
Then try fetching emails. Until this timeouts,
the progress bar moves forth and back with significant CPU load (10% of one core on my current Linux machine).
Assignee | ||
Comment 70•4 years ago
|
||
In TB 78 we use now the HTML progressmeter. I hope this helps a bit.
I tried the FX approach with using a SVG as throbber but I see on my system no difference to the PNG throbber with 2% CPU.
For the throbber I could create a patch.
Comment 71•4 years ago
|
||
In TB 78 we use now the HTML progressmeter. I hope this helps a bit.
Your hope is not fulfilled.
I've just tried TB 68 in comparison with Tb 78 - and got the same 10% CPU load on both.
Again - why don't you IT professionals try out such things yourself?!?
Assignee | ||
Comment 72•4 years ago
|
||
I'm a voluntary contributor and don't need such comments. It's also not very helpful when I see only 1% difference when I test it.
Comment 73•4 years ago
|
||
One actually does not need to be an IT professional to see that for the given issue there is no improvement with FB 78.
Assignee | ||
Comment 74•4 years ago
|
||
For the throbber I filed bug 1695950.
Assignee | ||
Comment 75•3 years ago
|
||
This approach uses our colours to paint the progressmeter to also better fit with our themes. Or do you propose a different colour than --primary?
For the indeterminate state I used the approach FX is using on the download panel.
I hope this helps with the CPU usage. I can't say if it's better as for me it is still the same low value.
Comment 76•3 years ago
|
||
Assignee | ||
Comment 77•3 years ago
|
||
This patch implements your wishes.
I hope you have some cycles to check where the high CPU load comes from.
Comment 78•3 years ago
|
||
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 79•3 years ago
|
||
(In reply to Alessandro Castellani [:aleca] from comment #78)
little nit: this could benefit from a
vertical-align: middle
in the folder
props dialog, because the default value from toolkit is-0.2em
, for
whatever reason.
I leaved it like it is. With vertical-align: middle
it is too low, see screenshot, at least with normal scaling.
Comment 80•3 years ago
|
||
Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/fb607a0fb095
Make the progressmeter use the theme colors. r=aleca
Comment 81•3 years ago
|
||
(In reply to Alessandro Castellani [:aleca] from comment #78)
...
Let's leave this open so I can later take it and investigate the performance issue.
Is there a solution? Or should this be delegated to someone else?
Comment 82•3 years ago
|
||
This slipped between other bugs, thanks for the ping.
I'm not sure there's anything else to do here as I can't reproduce this issue anymore.
Tested on 91.5.1 and on my mac the usage remains around 5% without spiking anymore.
Also, if I'm not wrong, this is not a XUL element anymore but it's not a standard HTML progressbar.
Can anyone else still reproduce it?
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Assignee | ||
Comment 83•1 year ago
|
||
I'll close the bug as we can't reproduce it.
Comment 84•1 year ago
|
||
(In reply to Richard Marti (:Paenglab) from comment #83)
I'll close the bug as we can't reproduce it.
Rather than Wontfix, it seems to me we should use WORKSFORME (for not reproducible using the STR) or Fixed via comment 80.
Assignee | ||
Updated•1 year ago
|
Description
•