Feedback needed: performance test

Discussions about the development and maturation of the platform code (UXP).
Warning: may contain highly-technical topics.

Moderators: trava90, athenian200

Which setting of the incremental cycle collector works better for you?

Poll ended at 2023-06-04, 07:51

Incremental CC off
5
50%
Incremental CC on
0
No votes
No noticeable difference
5
50%
 
Total votes: 10

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35477
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Feedback needed: performance test

Unread post by Moonchild » 2023-05-30, 07:51

One of the features we have in our platform is the so-called "Cycle Collector" which is a garbage collector for management of nodes and elements in open documents.
With our recent changes, it seems like one particular approach to manage objects this way could potentially have a performance bug (incremental cycle collector) but from my own testing, on one machine, it's inconclusive.

I'm asking for your help here: To test on your system whether the incremental cycle collector (CC) is beneficial or not with our current state of the code, or if it makes no difference.
For this testing I'm only looking for an apples to apples comparison on sites you normally visit (don't do benchmarks or what not, it's irrelevant for this).

How to test:
  1. Make a clean restart of your browser to get a fair comparison.
  2. Visit your normal sites or known heavier "modern" sites you occasionally visit. Get a feel of the overall performance of Pale Moon.
  3. Go into about:config and set dom.cycle_collector.incremental to false
  4. Restart the browser (important!)
  5. Visit your normal sites or known heavier "modern" sites you occasionally visit. Get a feel of the overall performance of Pale Moon.
  6. Answer the poll :)
    If your experience was better with (2) answer "Incremental CC on". if it was better in (5), answer "Incremental CC off"
  7. Remember to set the preference back to default (true) and restart
Give your browsing test ample time (i.e. at least half an hour in each setting, preferably more)
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

vannilla
Moon Magic practitioner
Moon Magic practitioner
Posts: 2183
Joined: 2018-05-05, 13:29

Re: Feedback needed: performance test

Unread post by vannilla » 2023-05-30, 08:07

I'm in the middle of testing but I have a question (making this post is also part of the testing): does the OS we are running the browser in, matter?
I would say "no", but maybe there is some platform-dependent code somewhere that might give different results.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35477
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Feedback needed: performance test

Unread post by Moonchild » 2023-05-30, 08:41

vannilla wrote:
2023-05-30, 08:07
does the OS we are running the browser in, matter?
No it doesn't. this code is OS-agnostic
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
Sajadi
Board Warrior
Board Warrior
Posts: 1226
Joined: 2013-04-19, 00:46

Re: Feedback needed: performance test

Unread post by Sajadi » 2023-05-30, 21:17

Does not matter with Outlook, this page instantly screws up Pale Moon when opened and closed, memory release buttons in about:memory response time is snail like, Outlook seem to screw up garbage collection of Pale Moon as a whole.

Part of the issue seems also to be that modern pages which heavily using modern ECMAScript features are only tested with multi-process and are for this reasoning only work properly with browsers like that.

Edit:
Only workaround which truly helps is to use the Portable Pale Moon, open it a second time which creates an additional profile which you can use for heavy pages, so the workflow on the "normal" portable stays undisturbed.

User avatar
billmcct
Keeps coming back
Keeps coming back
Posts: 954
Joined: 2012-09-04, 15:19
Location: Costa Rica & Union City Georgia USA

Re: Feedback needed: performance test

Unread post by billmcct » 2023-05-30, 21:55

I saw no difference either way. I have noticed that with the last update that PM with about 10 tabs open will go above 2 GB of memory causing the browser to slow down so bad that it takes sometimes 20+ seconds for a tab to close. Scrolling becomes almost impossible, changing tabs takes 20+ seconds. I have to restart too often to get the browser to work again.
--------------------------------------------------------------------------------------------------------------
The difference between the Impossible and the Possible lies in a man's Determination.
Tommy Lasorda

User avatar
Sajadi
Board Warrior
Board Warrior
Posts: 1226
Joined: 2013-04-19, 00:46

Re: Feedback needed: performance test

Unread post by Sajadi » 2023-05-30, 22:01

billmcct wrote:
2023-05-30, 21:55
I saw no difference either way. I have noticed that with the last update that PM with about 10 tabs open will go above 2 GB of memory causing the browser to slow down so bad that it takes sometimes 20+ seconds for a tab to close. Scrolling becomes almost impossible, changing tabs takes 20+ seconds. I have to restart too often to get the browser to work again.
It also heavily depends which pages you have open. ECMAScript less pages like just some search engines or not so heavy news pages or boards make over a long time no issue. But if you have much script heavy pages open, it fully affects performance. And then there are the kind of pages which instantly kill performance as soon as you close them.

But that problem was also around since a long time already. I personally have not seen it becoming way worse over the course of the last few updates, but it is clearly an issue which is visible depending on your page usage - an issue which is present since the switch towards UXP (which had Firefox 52 as fork point)

It rather looks like that the base code already had some bigger memory/garbage collection related issues in the past, the question is how to solve that or at least mitigate that to some degree.... if it is possible. Until that, best is to have 2 instances... one for casual browsing where you know you do not want your workflow disturbed... and the other instance that heavy pages which you know that they will kill performance over and over again... No pretty solution, but it works at least.
Last edited by Sajadi on 2023-05-30, 22:12, edited 1 time in total.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35477
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Feedback needed: performance test

Unread post by Moonchild » 2023-05-30, 22:12

billmcct wrote:
2023-05-30, 21:55
I have noticed that with the last update that PM with about 10 tabs open will go above 2 GB of memory causing the browser to slow down so bad that it takes sometimes 20+ seconds for a tab to close. Scrolling becomes almost impossible, changing tabs takes 20+ seconds.
Can you try to figure out which site exactly causes this problem for you? Because I've seen this behviour as well but it seems to be specific to one website (which I have since moved over to my use of Edge)
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
billmcct
Keeps coming back
Keeps coming back
Posts: 954
Joined: 2012-09-04, 15:19
Location: Costa Rica & Union City Georgia USA

Re: Feedback needed: performance test

Unread post by billmcct » 2023-05-30, 22:28

It's mostly Yahoo news pages. They usually have lots of videos auto playing in the background.
I just opened 10 Slashdot articles and the browser crashed. Did this three times before it finally loaded all the pages without crashing. Memory usage is 923 MB. I failed to mention that when closing tabs I have noticed it takes longer to release the memory than it used to. Closed six tabs and it took about 15 minutes or more to drop the memory down to 714 MB.
--------------------------------------------------------------------------------------------------------------
The difference between the Impossible and the Possible lies in a man's Determination.
Tommy Lasorda

User avatar
Sajadi
Board Warrior
Board Warrior
Posts: 1226
Joined: 2013-04-19, 00:46

Re: Feedback needed: performance test

Unread post by Sajadi » 2023-05-30, 22:32

billmcct wrote:
2023-05-30, 22:28
It's mostly Yahoo news pages. They usually have lots of videos auto playing in the background.
I just opened 10 Slashdot articles and the browser crashed. Did this three times before it finally loaded all the pages without crashing. Memory usage is 923 MB. I failed to mention that when closing tabs I have noticed it takes longer to release the memory than it used to. Closed six tabs and it took about 15 minutes or more to drop the memory down to 714 MB.
Twitch, Github, some forum pages open, 1.6 GB memory usage, quite stable, zero crashes. But yeah that what was i referring earlier... overloaded pages are poison for Pale Moon.

Edit: Opened 20 Slashdot tabs, no crashes. What add-ons have you installed btw. ?

User avatar
billmcct
Keeps coming back
Keeps coming back
Posts: 954
Joined: 2012-09-04, 15:19
Location: Costa Rica & Union City Georgia USA

Re: Feedback needed: performance test

Unread post by billmcct » 2023-05-30, 22:41

85 enabled 20 disabled
85 enabled 20 disabled

About Add-ons 32.0 (Disabled)
About:about Button 1.1.2.1-signed
Add As Search Engine 1.0
Add Bookmark Helper 1.0.10
Add-ons Inspector 1.0.1
AlwaysRememberPassword 0.1
Auto Refresh 1.0.2.1-signed.1-signed
BetterPrivacy 1.77 (Disabled)
BIZARRE 32.1
Bookmark Current Tab Set 0.2.4.1-signed.1-signed
Bookmark Duplicate Cleaner 0.2.1-signed.1-signed (Disabled)
Bookmarks Checker check for bad links 3.1.1.1-signed (Disabled)
butWhyMod 1.7 (Disabled)
Classic Add-ons Archive 2.0.3
Classic Password Editor 1.1.2
Clean Uninstall 0.2.0
CLEO 10.0 (Disabled)
Config Comments 1.0
Context Search X 0.4.6.26
CookieKeeper 1.9.3.1
CookiePage 32.0
Cookies Manager+ 1.14.3
Copy Hyperlink Text 1.2.1
Decentraleyes 1.4.3
Disconnect 3.15.3.1-signed.1-signed (Disabled)
Dismiss The Overlay 1.0.7
DOM Inspector 3.1.7534 (Disabled)
Download Dialog Tweak 0.3.0
Downloads Window 0.6.5
Engine Click To Search 1.0.0
Expire history by days 1.2.4
Extension Conflict Troubleshooter 10.1
Extension List Dumper 2 1.0.2
Extension Preferences Menu 2.13.19
Extension Source Explorer 1.1.6 (Disabled)
ExtExp 32.0 (Disabled)
Favidico 32.1
FEBE 10.4 (Disabled)
Fierr 32.0
FireShot 0.99.15.1
Forecastfox (fix version) 2.4.8
Form History Control 1.4.0.6
GeoFlag 32.0
GetEmAll! 1.2.1
GitHub/GitLab Web Components Polyfill 1.2.19 (Disabled)
Google Shortcuts 2.1.8.2.1-signed.1-signed
Greasemonkey for Pale Moon 3.31.4
Hide Caption Titlebar Plus 2.8.7rc
History Submenus the Third 2.4.7782
HTerr 32.0
HTTPS Always 5.2.26
I don't care about cookies 3.4.7
Image Search Options 2.0.3.7
ImTranslator 10.52
InFormEnter 0.771
JS Switch 0.2.10.1-signed.1-signed
LiveClick Lunar 32.0
Load Tab on select [converted] 0.5.8.1 (Disabled)
Lull The Tabs 1.5.2
Menu Wizard 4.05 (Disabled)
Minama 1.0.2
More Tools Menu 1.2.4.1-signed.1-signed
Open Bookmarks in New Tab 2.0.2016021001
Open Profile Folder 1.3.3.1-signed.1-signed
Open Registry Key 32.0
Open With 6.8.6
OpenDownload² 4.2.1
OPIE2 10.0 (Disabled)
Organize Search Engines 1.96.05
Pale Moon Commander 3.0.1
Palefill Web Technologies Polyfill 1.27
Password Backup Tool 1.4.1
Paywall Pass 0.0.3.1-signed
PermissionsPlus 2.5.1 (Disabled)
Photobucket Unlocker 1.0.2 (Disabled)
Places Maintenance 2.0.3
ProfileSwitcher 1.7.7 (Disabled)
Properties dialog 1.0
Pure URL 3.3.4
ReloadRepeat 32.0
Responsive Bookmarks Toolbar 2.0.4
Restart manager 2.09
Roomy Bookmarks Toolbar 1.4.17
Scriptlet Doctor 1.2.5 (Disabled)
Searchbar like Findbar 2.0
SettingInsanity 1.0.0
Show My Password 2.0.4
Sort and Search Customization Dialogs 0.1.3.1-signed.1-signed
SQLite Admin 1.1 (Disabled)
Statusbar Organizer 2.1.0
Stay-Open Menu 2.2.2rc
Tab Utilities Phoenix 2.1.2
TextFX 2.6
Theme Tweaker 1.0.0
toggleDocumentColors 2.0.20180429
uBlock Origin 1.16.4.30
Undo Bookmarks Menu 1.7.1-signed.1-signed
Update Alert 1.4.2
User Agent Status 1.7.2
Vacuum Places Improved 1.2.1-signed.1-signed
View Image 1.2
WebInstall Ninja 1.0.2
xclear 1.8.2
Yahoo Mail Button 1.1.1
Yahoo Mail Hide Ad Panel 2.60
--------------------------------------------------------------------------------------------------------------
The difference between the Impossible and the Possible lies in a man's Determination.
Tommy Lasorda

User avatar
Sajadi
Board Warrior
Board Warrior
Posts: 1226
Joined: 2013-04-19, 00:46

Re: Feedback needed: performance test

Unread post by Sajadi » 2023-05-30, 22:56

billmcct wrote:
2023-05-30, 22:41
85 enabled 20 disabled
That is quite much. The more add-ons you add the more hidden instability it can cause. The only 2 relevant ones i have are an Adblocker and Stylem. Too much add-ons can also affect performance quite a bit.

User avatar
badnick
Astronaut
Astronaut
Posts: 670
Joined: 2017-03-23, 19:56

Re: Feedback needed: performance test

Unread post by badnick » 2023-06-04, 04:14

I haven't posted on the forum for a long time, but yes, PM gets tired quickly and this is an old problem. And I have only 9 add-ons.
Windows 10 pro /64 (version 1809)
PM last/64

User avatar
Sajadi
Board Warrior
Board Warrior
Posts: 1226
Joined: 2013-04-19, 00:46

Re: Feedback needed: performance test

Unread post by Sajadi » 2023-06-04, 13:00

Back to the topic... Everyone when you have next time a slowdown... would be interesting to go to
about:memory

Click on measure and open/minimize the sub processes there to see if you have also ghost windows appearing - in my case that happens with Outlook - closing the tab is not unloading the page out of memory and a ghost window remains which is constantly swallowing resources.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35477
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Feedback needed: performance test

Unread post by Moonchild » 2023-06-04, 15:11

well at the very least it seems there's either no difference or it's better with incremental CC off, so i'll make that the default going forward.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
Sajadi
Board Warrior
Board Warrior
Posts: 1226
Joined: 2013-04-19, 00:46

Re: Feedback needed: performance test

Unread post by Sajadi » 2023-06-04, 15:42

Moonchild wrote:
2023-06-04, 15:11
well at the very least it seems there's either no difference or it's better with incremental CC off, so i'll make that the default going forward.
At least it makes nothing worse, so if it only makes the smallest bit of a change, it is for sure better to shut it off as default

Btw. what is with the other settings you added in this post which can improve memory usage? Perhaps a good idea too to change them standard wise? (https://forum.palemoon.org/viewtopic.php?t=20882#p156316)

You added additionally:

javascript.options.mem.gc_compacting -> false
javascript.options.mem.gc_allocation_threshold_mb -> 1000
javascript.options.mem.gc_max_empty_chunk_count -> 250
javascript.options.mem.gc_min_empty_chunk_count -> 50
javascript.options.mem.high_water_mark -> 512

I just have not changed javascript.options.mem.gc_generational as that just increases the ram usage Pale Moon is consuming in general

User avatar
distantpluto
Fanatic
Fanatic
Posts: 115
Joined: 2015-12-17, 18:28
Location: UK

Re: Feedback needed: performance test

Unread post by distantpluto » 2023-06-05, 09:07

Moonchild wrote:
2023-06-04, 15:11
well at the very least it seems there's either no difference or it's better with incremental CC off, so i'll make that the default going forward.
I spent all day yesterday with this off and it's very hard to quantify but it was certainly no worse, maybe a tiny bit better.
Pale Moon and Epyrus on Arch Linux.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35477
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Feedback needed: performance test

Unread post by Moonchild » 2023-06-05, 09:21

Sajadi wrote:
2023-06-04, 15:42
what is with the other settings you added in this post
Use defaults. They are tuned for best normal use.

Our incremental and generational GC is working as well as it can considering the abuse it gets. Incremental CC is simply not as mature and I don't think it was ever improved much after our fork point by Mozilla since they went with the "get a new car when the ash tray is full" e10s approach. So using standard CC instead which has been tried and tested for years is always an option.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
Sajadi
Board Warrior
Board Warrior
Posts: 1226
Joined: 2013-04-19, 00:46

Re: Feedback needed: performance test

Unread post by Sajadi » 2023-06-09, 13:20

Moonchild wrote:
2023-06-05, 09:21
Sajadi wrote:
2023-06-04, 15:42
what is with the other settings you added in this post
Use defaults. They are tuned for best normal use.

Our incremental and generational GC is working as well as it can considering the abuse it gets. Incremental CC is simply not as mature and I don't think it was ever improved much after our fork point by Mozilla since they went with the "get a new car when the ash tray is full" e10s approach. So using standard CC instead which has been tried and tested for years is always an option.
Well, i still decided to do some personal tests with the flags mentioned - and they did make indeed not the biggest difference. But then i tried out to switch also the flag

javascript.options.mem.gc_generational

to false which is standard wise set to true. And i have to say for me personally the browser feels now much more responsive - even with 2 Kick streams, 1 Twitch stream, 2 forums and 12 UXP repo tabs open for over one hour.

The only downside is this flag off increases the general memory usage of Pale Moon, but as said, in my test case not only the browser felt more responsive, i am also still able to press the memory release buttons without noticeable delay. Perhaps some more tests are needed and at least in my opinion it would be worth a consideration to turn off that flag also by default.

The changed flags which i use at this moment are:
javascript.options.mem.gc_compacting -> false
javascript.options.mem.gc_generational -> false
javascript.options.mem.gc_allocation_threshold_mb -> 1000
javascript.options.mem.gc_max_empty_chunk_count -> 250
javascript.options.mem.gc_min_empty_chunk_count -> 50
javascript.options.mem.high_water_mark -> 512

and of course
dom.cycle_collector.incremental -> false

User avatar
suzyne
Lunatic
Lunatic
Posts: 324
Joined: 2023-06-28, 22:43
Location: Australia

Re: Feedback needed: performance test

Unread post by suzyne » 2023-07-13, 22:31

I am liking Pale Moon more and more, it is starting to become my main browser, but along with that switch, I am using websites that reading in the forum posts are problematic, namely outlook.live.com and a couple of other web app like sites.

After starting to notice performance issues, I found this thread and seeing that 50% say that having the incremental cycle collector off works better for them, I am going to give it a try.

My computer has 16GB and since I rarely see little more than half of that being used, even when I have all my apps open doing their thing, I don't really care if my main browser starts gobbling up memory, so I will try these settings too, and will report back if I find anything interesting.
The changed flags which i use at this moment are:
javascript.options.mem.gc_compacting -> false
javascript.options.mem.gc_generational -> false
javascript.options.mem.gc_allocation_threshold_mb -> 1000
javascript.options.mem.gc_max_empty_chunk_count -> 250
javascript.options.mem.gc_min_empty_chunk_count -> 50
javascript.options.mem.high_water_mark -> 512

and of course
dom.cycle_collector.incremental -> false
Laptop 1: Windows 10 64-bit, i7 @ 2.80GHz, 16GB, NVIDIA GeForce MX450.
Laptop 2: Windows 10 32-bit, Atom Z3735F @ 1.33GHz, 2GB, Intel HD Graphics.

Locked