XUL update made Pale Moon 28 at least 20% slower

Talk about code development, features, specific bugs, enhancements, patches, and similar things.
Forum rules
Please keep everything here strictly on-topic.
This board is meant for Pale Moon source code development related subjects only like code snippets, patches, specific bugs, git, the repositories, etc.

This is not for tech support! Please do not post tech support questions in the "Development" board!
Please make sure not to use this board for support questions. Please post issues with specific websites, extensions, etc. in the relevant boards for those topics.

Please keep things on-topic as this forum will be used for reference for Pale Moon development. Expect topics that aren't relevant as such to be moved or deleted.
palacs

XUL update made Pale Moon 28 at least 20% slower

Unread post by palacs » 2018-09-18, 20:41

It seems Pale Moon developers have started falling into the trap of software bloat Firefox developers had already been in when the fork was created. Although Pale Moon authors did a really great job at sorting out unnecessary bloat, Chrome-mockery and other useless features that were there only for trend and fashion, it seems PM can't escape its destiny of getting fatter and slower by every release. I'm really sorry about that because the users of Pale Moon old or simply low-end computers are becoming even more defenseless to software bloat.

The first thing I noticed is that xul.dll in the new version is twice as big as in 27 (55.4 MB vs 27.6 MB). The second thing that it loads up in 7 seconds, instead of 2 seconds (previous version) with warm start (!). I have an SSD anyways so it should load fast. Chrome loads in 1.5 sec. The third annoying thing is that - besides the bluish default theme that nobody ever wanted or asked for - almost every UI element is slower, accessing main or context menu elements, rendering and scrolling of web pages, etc.

Pale Moon has been a great alternative to Firefox or any other bloated browser. Even users of older computers running Windows XP could stay up-to-date with custom MSFN builds. It would really be a pity if developers let this happen. So please do something about it. Go back to older version of XUL, optimize more, only pick changes that are really needed, etc. Pale Moon should be faster and faster with each new version.

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

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by Moonchild » 2018-09-19, 08:35

Thank you for your observations.

Now, kindly take a step back and see what's been going on with the milestone changeover:
We've made a new fork of the Mozilla codebase for this release. This means that we have inherited a much larger codebase (24 million lines of code as opposed to 14 million lines) that we are working from. Mind you, a good portion of this is absolutely necessary to implement what the modern web demands of a web browser, and is not "bloat" at all (e.g. ECMAScript's JavaScript standard implementations, WebGL2, DOM specifications).
In addition, the XUL library is currently a monolithic library that has several others folded in that were separate in Pale Moon 27 (most notably media handling and the JavaScript engine). We have open issues to split those libraries back out into their own .dlls, so please don't mis-read the size change of that one .dll as caused purely by bloat or unwanted/unnecessary features.

In terms of weight, yes, Pale Moon 28 is considerably heavier than Pale Moon 27. This is in part inevitable because of the web's demands and that added weight will always remain there. The re-forking has set us back in that respect because we've also adopted code we in fact don't need, but things can only go up and improve from here on out (since we will not do it again -- UXP is what it is). That is not something that can be done overnight; it will take many months, probably years, to unravel and untangle unnecessary code from necessary code due to Mozilla's gradual and piece-meal rearchitecturing to aim for e.g. electrolysis and their move to using Rust.

I'd also like to repeat that it has never been one of Pale Moon's goals to be light-weight. The primary goal has always been to be full-featured but efficient. We don't target particularly old hardware or particularly old operating systems for that very reason, and never have. That it as a side effect of its efficiency was very suitable for old systems is great of course, but not a focused goal. Overall, performance of Pale Moon 28 is better -- on targeted hardware. On old hardware you may find less acceleration because of the changes in the rendering engine, but that is not something that can be "rolled back".

So, please don't think we've fallen into any "trap" or that we have any intention of stacking on more and more useless code. In fact, note my signature quote which is true now more than ever:
Improving Mozilla code: You know you're on the right track with code changes when you spend the majority of your time deleting code.
Last edited by Moonchild on 2018-09-19, 08:37, edited 1 time in total.
"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

yami_

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by yami_ » 2018-09-19, 09:25

palacs wrote:Chrome loads in 1.5 sec.
IIRC Chrome will start in the background when you log in to your PC and will stay in memory after you close its last window in order to give the impression of faster startup. For the same reason it will also preload web pages that it think you will visit.

Octopuss

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by Octopuss » 2018-09-19, 11:37

Moonchild, I have a related question.
PM27 was based on noticeably older Firefox code, right? It worked fine (I guess?), but over time, lots of websites started to feel slow or even extremely slow to the point of being barely useable (like scrolling in channel list on Twitch, clickin on anything on FB or scrolling far into old posts on Twitter). I think one of the explanations was that the Firefox code evolved, and PM27 didn't have what websites currently require to function properly anymore.
Since this apparently wasn't possible to fix/add/improve/something to PM27, PM28 was forked from newer Firefox. That's fine, but... what are you going to do for this to not happen again? Since there won't be any newer Firefox to fork again, what will you do when "the code" evolves again, or rather when websites start to require something newer than what PM28 offers?

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

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by billmcct » 2018-09-19, 13:25

I personally haven't experienced any type of slow downs using:
PM 28.0.1 32 bit
Win 7 64 bit
--------------------------------------------------------------------------------------------------------------
The difference between the Impossible and the Possible lies in a man's Determination.
Tommy Lasorda

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

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by Moonchild » 2018-09-19, 19:12

Octopuss wrote:That's fine, but... what are you going to do for this to not happen again? Since there won't be any newer Firefox to fork again, what will you do when "the code" evolves again, or rather when websites start to require something newer than what PM28 offers?
Thankfully the JS "storm" is pretty much over. But, as you observed, things will continue to evolve. We were not far removed from being able to continue on Tycho, were it not for several landmark features we needed help with and despite bounties being available nobody, not a single person, was willing to help out with. With the re-fork and additional coding on top of that we are past that point, with all core features of ES6, ES2016 and ES2017 implemented, and we should be able to keep pace with any additions that are going to be made mostly as addenda -- things have slowed down considerably in terms of the essentials of scripting (thankfully -- the JS spec is already quite insane with what it has become, trying to provide just about all common-language paradigms in one).

If the same situation occurs again, against all odds and expectations, and once again our community does not help out, then it will simply mean the end of the road. It's not up to just our ragtag band of specialists doing most of the core work. It's up to all of you to keep an eye out and help out where possible. This is a community project. If the community fails it, then the project will also fail.

That bleakest-of-outlooks aside though, I'm confident we're on the right track here :)
"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
mr tribute
Lunatic
Lunatic
Posts: 334
Joined: 2016-03-19, 23:24

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by mr tribute » 2018-09-19, 22:13

Moonchild wrote:
Octopuss wrote:That's fine, but... what are you going to do for this to not happen again? Since there won't be any newer Firefox to fork again, what will you do when "the code" evolves again, or rather when websites start to require something newer than what PM28 offers?
Thankfully the JS "storm" is pretty much over. But, as you observed, things will continue to evolve. We were not far removed from being able to continue on Tycho, were it not for several landmark features we needed help with and despite bounties being available nobody, not a single person, was willing to help out with. With the re-fork and additional coding on top of that we are past that point, with all core features of ES6, ES2016 and ES2017 implemented, and we should be able to keep pace with any additions that are going to be made mostly as addenda -- things have slowed down considerably in terms of the essentials of scripting (thankfully -- the JS spec is already quite insane with what it has become, trying to provide just about all common-language paradigms in one).

If the same situation occurs again, against all odds and expectations, and once again our community does not help out, then it will simply mean the end of the road. It's not up to just our ragtag band of specialists doing most of the core work. It's up to all of you to keep an eye out and help out where possible. This is a community project. If the community fails it, then the project will also fail.

That bleakest-of-outlooks aside though, I'm confident we're on the right track here :)
Very interesting information. Change is sometimes used as a weapon to push out smaller players. I am happy Firefox is still around so WebKit/Blink isn't the only rendering engine. When Opera used Presto some things didn't work correctly but both Firefox and Pale Moon work well despite not using WebKit/Blink.

I think Pale Moon is pretty close to perfection. Version 28 seems more problematic on Windows than on Linux.

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

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by Moonchild » 2018-09-20, 12:47

And with today's update, it's quite likely your 20% "slower" has been mitigated.
"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

palacs

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by palacs » 2018-09-23, 16:52

Moonchild wrote:a good portion of this is absolutely necessary to implement what the modern web demands of a web browser, and is not "bloat" at all
Users of the "modern web" are not identical to users of Pale Moon. Users of the "modern web" should go with bloatware like Google Chrome or Mozilla Firefox. Pale Moon 27 can display all mainstream websites by now with all its functionality, including the new Gmail, new Messenger-looking Facebook, GitHub, news sites and a lot more other sites. Maybe there is a small portion of sites that were created by innovation idealist webdorks and thus has glitches with PM 27. However, it's unclear to me why you're sacrifising the speed and efficiency of PM 27 still working well at most websites, to the stability of the previously mentioned small portion. Btw, I hope you're not planning to adopt the new Rust idealism of Firefox. That would completely render the existence of Pale Moon useless.
Moonchild wrote:I'd also like to repeat that it has never been one of Pale Moon's goals to be light-weight. The primary goal has always been to be full-featured but efficient.
A great measurement of efficiency is to run Pale Moon on an old hardware. If it lags, produces slowdowns and takes a lot of seconds to load, it is not efficient. This is what divides bloatware from efficient software. Not its lightness but performance. And I'm not necessarily talking about memory footprint because it's not the No. 1 problem as you can put 4 GB of RAM even into more-than-ten-year-old Core Duo machines. The No. 1. problem is CPU bloat and inefficiency as it's much harder and more expensive to replace a CPU than it is to put in more memory. When you're adopting the code of lazy Firefox developers who patchwork their code on their latest and shiniest Intel i7 and AMD Ryzen nuclear power plants with 4-8 cores and 32 GB of RAM, you should think twice whether it should get into Pale Moon on an "it is what it is" basis. Of course they will not optimize anything for speed if they don't feel the slowness. If you want to keep Pale Moon efficient, it should be priority one to optimize the code you adopt if it's slow and the slowness can easily be detected by running it on old hardware.
Moonchild wrote:And with today's update, it's quite likely your 20% "slower" has been mitigated.
It has not. PM 28.1.0 still starts in 7 seconds, while PM 27 does it in just 2. Let alone the bluish theme which is still annoying as hell and should not be there by default. Please remove it and restore the good old neutral grey theme that's been there for years.
Last edited by palacs on 2018-09-23, 16:58, edited 5 times in total.

User avatar
back2themoon
Moon Magic practitioner
Moon Magic practitioner
Posts: 2402
Joined: 2012-08-19, 20:32

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by back2themoon » 2018-09-23, 17:16

palacs wrote:lots of stuff
If I understand correctly:

1. You know the nature of Pale Moon users.
2. You know about the intricate technical differences between PM27 and PM28.
3. You know how software in general should be tried and tested by developers, and what makes it efficient.
4. You know what would render Pale Moon useless.
5. You know that a default setting is annoying as hell and want it changed. I assume you also know it annoys all other users, too.

Is there a legitimate question somewhere in there, or is it all knowledge and demands?

(Note to anyone interested: it's my last reply in similar threads, which seem growing of late. I'll still try to help users, as always.)

yami_

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by yami_ » 2018-09-23, 17:38

palacs wrote:Btw, I hope you're not planning to adopt the new Rust idealism of Firefox.
UXP does not support Rust, see Issue #58 (uxp).
palacs wrote:A great measurement of efficiency is to run Pale Moon on an old hardware. If it lags, produces slowdowns and takes a lot of seconds to load, it is not efficient.
It is the old hardware support that makes Pale Moon inefficient.

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

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by Sajadi » 2018-09-23, 18:38

palacs wrote:Pale Moon 27 can display all mainstream websites by now with all its functionality
Pale Moon 27 has rather issues with big pages, especially the one's who require ES6 and angoing ECMAscript features. So no, it is rather the case that Pale Moon 27 has big compatibility issues with recent pages. And a lot of pages are either working only partly or not at all.

If someone who would have been able to implement the missing core ECMAscript features in Pale Moon 27 would have found a way to implement them - then we still would have Pale Moon 27 around. But as there was none around who was able to do it or who wanted to do it, for this reason we have now Pale Moon 28 around with a new code base in use.

This is a community project as it was already mentioned in one way or another - to a certain degree the user itself is the one who decides where the journey is going or if the journey is on-going at all. So, you want Pale Moon 27 - fork the old repository, re-brand the browser and afterwards feel free to implement all missing ECMAscript features to bring it to the same level like Pale Moon 28 delivers out of the box - or find a way that someone else does this job for you, how you do that in the end.... that is up to you ;)

Anyway - Point is, Pale Moon 27 is dead, as it was no longer fulfilling the requirements of today's web. And without that additional ECMAscript features, Pale Moon 27 even has issues with Github. There have been too many compatibility issues to use that code base any longer.
Last edited by Sajadi on 2018-09-23, 18:58, edited 10 times in total.

Thehandyman1957

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by Thehandyman1957 » 2018-09-23, 18:57

palacs wrote:A great measurement of efficiency is to run Pale Moon on an old hardware. If it lags, produces slowdowns and takes a lot of seconds to load, it is not efficient. This is what divides bloatware from efficient software.;
Um, NO! :roll: A great measurement of efficiency is to run on the targeted hardware the way you want it to.
It is very clearly noted that old hardware is no longer supported, and there are good reasons for this. As the
web has become more complicated and security risks have increased so has the code and resources required
to surf it. OLD HARDWARE was not designed to handle what is now required to surf properly without issues,
I.E. slow downs and glitches. Not to mention the issues with old drivers that were never designed to handle
what is now mainstream internet, video or a browser that needs code from newer hardware and it's drivers.

As for the color of the browser? :wtf: Get a freaking life. That's what the themes are for.
And they are provided for you COMPLETELY FREE OF CHARGE. :o

Man, it must be world wide Troll week or something. I must have missed the memo. :problem:
Last edited by Thehandyman1957 on 2018-09-23, 18:59, edited 1 time in total.

Octopuss

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by Octopuss » 2018-09-23, 19:12

palacs wrote:Pale Moon 27 can display all mainstream websites by now with all its functionality
AHAHAHAHAHAHAHA!

Please go back where you come from. You're quite obviously fairly delusional.

Not even PM28 is 100%, and it's much, much better than 27.

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

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by Sajadi » 2018-09-23, 19:30

Octopuss wrote:Not even PM28 is 100%, and it's much, much better than 27.
Well, you know where you can report issues ;)
Last edited by Sajadi on 2018-09-23, 19:30, edited 1 time in total.

User avatar
satrow
Forum staff
Forum staff
Posts: 1885
Joined: 2011-09-08, 11:27

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by satrow » 2018-09-23, 22:02

back2themoon wrote:
palacs wrote:lots of stuff
... Is there a legitimate question somewhere in there, or is it all knowledge and demands?

(Note to anyone interested: it's my last reply in similar threads, which seem growing of late. I'll still try to help genuine users, as always.)
Fixed the last part for you.

Alex654

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by Alex654 » 2019-04-24, 00:02

Thehandyman1957 wrote:
2018-09-23, 18:57
OLD HARDWARE was not designed to handle what is now required to surf properly without issues,
I.E. slow downs and glitches. Not to mention the issues with old drivers that were never designed to handle
what is now mainstream internet, video or a browser that needs code from newer hardware and it's drivers.
That's absolutely not right. I have no issues with modern web at all including video (except some newer fonts on Windows XP). My hardware is from 2011-2012, and it works perfectly in any browser with any drivers, especially in Windows 7 and newer OS. So you're wrong.

Alex654

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by Alex654 » 2019-04-24, 00:09

Octopuss wrote:
2018-09-23, 19:12

Please go back where you come from. You're quite obviously fairly delusional.

Not even PM28 is 100%, and it's much, much better than 27.
Man, 100% is not needed - you can always use Chrome where Pale Moon or its forks fail.
GitHub is not a marker at all - especially if you consider that it was recently sold to Microsoft, that wants everyone to update OS and browser on a regular basis. In fact the features that is has worked quite well without ES2018 language features of JavaScript (which is what breaks PM 27 in the fist place). Again, that featres ARE NOT NEEDED for the site to function properly. As for the new features - they are not big or very important, and can be implemented using ES2016 or even good old ES5 anyway.

New Tobin Paradigm

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by New Tobin Paradigm » 2019-04-24, 07:10

Please do not bump old threads.

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

Re: XUL update made Pale Moon 28 at least 20% slower

Unread post by Moonchild » 2019-04-24, 08:36

Off-topic:
Reminds me, I need to reinstate the auto-lock cron job.
"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

Locked