What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Board for discussions around the Basilisk web browser.

Moderator: Basilisk-Dev

avada
Moon lover
Moon lover
Posts: 97
Joined: 2013-11-16, 16:41
Location: Hungary

What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Unread post by avada » 2017-11-11, 19:31

Hi!

So it's explicitly stated that "Does not use Electrolysis (e10s, multi-process browsing)". But Moonchild made some vague remarks about "parallelizing libraries at a lower level" or "making things multi-threaded and multi-core/parallel at the lower level".

So I wonder how that works, could it perform as well (as much as gains go) as e10s multi-processing can.
For example: could tabs load/function independently without interference from each other and use different CPU cores?

adisib
Lunatic
Lunatic
Posts: 380
Joined: 2015-06-13, 03:34
Location: KY

Re: What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Unread post by adisib » 2017-11-11, 20:02

avada wrote:use different CPU cores?
Open up a page in Pale Moon while having task manager showing per core usage. You will see that Pale Moon uses multiple cores without using electrolysis.

The difference that you can notice that comes from using multiple processes like electrolysis is that if a crash occurs, that crash can possibly only result in a single tab being closed, rather than the whole browser. At the same time, using a multiple process approach like electrolysis will make the code base much more complicated which will probably mean you crash more often than without electrolysis.

avada
Moon lover
Moon lover
Posts: 97
Joined: 2013-11-16, 16:41
Location: Hungary

Re: What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Unread post by avada » 2017-11-11, 21:03

adisib wrote:
avada wrote:use different CPU cores?
Open up a page in Pale Moon while having task manager showing per core usage. You will see that Pale Moon uses multiple cores without using electrolysis.

The difference that you can notice that comes from using multiple processes like electrolysis is that if a crash occurs, that crash can possibly only result in a single tab being closed, rather than the whole browser. At the same time, using a multiple process approach like electrolysis will make the code base much more complicated which will probably mean you crash more often than without electrolysis.
I see. So isn't it possible for only the tab to crash?

User avatar
adesh
Board Warrior
Board Warrior
Posts: 1277
Joined: 2017-06-06, 07:38

Re: What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Unread post by adesh » 2017-11-12, 09:00

Electrolysis is not "one process per tab" model, Chrome/Chromium is the only browser to do that. Mozilla's project just uses different processes for differenet tasks - one process to manage the browser UI (UI process) and one or more content processes to manage the web content in tabs. This means that, in cases of several open tabs, a content process may manage content of more than one tabs, and hence, crashing of a content process may take multiple tabs down with it.

Also, note that it does not result in improved real performance (throughput), but rather a perceived performance gain where browser seems to be more responsive (because UI drawing is done independently from tab content). One benefit of this is that a CPU intensive webpage will not stop browser from accepting user commands and freezing the browser.

You can change the number of content process through about:config hackery, but current consensus seems to be that anything above 8 will negate the performance gains.

Multitaksing and parallel processing are different from Mozilla's Electrolysis.

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

Re: What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Unread post by Moonchild » 2017-11-12, 09:25

adesh wrote:current consensus seems to be that anything above 8 will negate the performance gains.
I think the problem is that people also seem to be confused about performance gain here. Because of the way e10s works, and because it must talk to and transfer (regularly huge amounts of) data to the main (UI) process for every action performed, every element cached and every other operation that can't be done in a restricted content process, there is no direct performance gain, and in fact the overhead for each process and the system overhead for passing data back and forth between processes can't be ignored either; this overhead will also increase with each additional content process used and is a pure performance sink. Inter-process communication has a cost that is often conveniently ignored by proponents of e10s.
As stated it is only user perception that benefits here; but user perception won't benefit if the browser overall becomes less responsive or loads your system more for its internal communication, even if the UI remains more responsive. If you click a button and it responds with visual feedback that you clicked it, but there's a delay before the actual action associated with the button is performed, is that a gain? I think not.

In fact, my own practical experiences (from using Firefox and Nightly) are that there is a noticeable performance loss when e10s is enabled, with clear delays for every action performed.
"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

avada
Moon lover
Moon lover
Posts: 97
Joined: 2013-11-16, 16:41
Location: Hungary

Re: What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Unread post by avada » 2017-11-12, 09:42

adesh wrote:Electrolysis is not "one process per tab" model, Chrome/Chromium is the only browser to do that. Mozilla's project just uses different processes for differenet tasks - one process to manage the browser UI (UI process) and one or more content processes to manage the web content in tabs. This means that, in cases of several open tabs, a content process may manage content of more than one tabs, and hence, crashing of a content process may take multiple tabs down with it.
Well, I increased dom.ipc.processCount to a large value so most times the tabs indeed have separate content processes.
Also it's not true anymore. They even increased the number of processes by default to four.
adesh wrote:Also, note that it does not result in improved real performance (throughput), but rather a perceived performance gain where browser seems to be more responsive (because UI drawing is done independently from tab content). One benefit of this is that a CPU intensive webpage will not stop browser from accepting user commands and freezing the browser.
This isn't true either because of the above. Particularly with the increased content process count that I have for years.
adesh wrote:You can change the number of content process through about:config hackery, but current consensus seems to be that anything above 8 will negate the performance gains.
As long as you have enough RAM it doesn't, in my experience. When the swapfile gets used extensively it starts to suck.
adesh wrote:Multitaksing and parallel processing are different from Mozilla's Electrolysis.
I know, otherwise I wouldn't have submitted this topic. :) But for starters, I don't know whether it's possible achieve such degree of separation as with different processes.

User avatar
hujan86
Fanatic
Fanatic
Posts: 194
Joined: 2017-09-27, 06:50

Re: What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Unread post by hujan86 » 2017-11-12, 13:00

Moonchild wrote:In fact, my own practical experiences (from using Firefox and Nightly) are that there is a noticeable performance loss when e10s is enabled, with clear delays for every action performed.
To think some people kept bitching about how "obsolete" Pale Moon is just because there's no Electrolysis support.
Avatar's Source: yereverluvinuncleber

avada
Moon lover
Moon lover
Posts: 97
Joined: 2013-11-16, 16:41
Location: Hungary

Re: What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Unread post by avada » 2017-11-17, 10:51

Hmmm.

It seems like electrolysis options are present and functioning in basilisk. I had force enabled in the profile I tested. About:support shows it's enabled and I see multiple content processes appearing.

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

Re: What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Unread post by Moonchild » 2017-11-17, 12:03

Of course if you want to tinker with it you can force-enable it in basilisk (for now). Running it like that is completely unsupported though.
It's no different than other code that is still available in the platform; doesn't mean that it's wise or smart to use it ;-)
As a platform, other applications may want to use multi-process as well; I'd like to think broader than just Basilisk for UXP.
"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

MoonExplorer

Re: What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Unread post by MoonExplorer » 2017-11-18, 12:46

I'm sorry, but you are wrong. It doesn't all come down just to perception improvements. Try loading multiple tabs simultaneously with 4 content processes (thus utilizing all cores) and you'll see a 3-3.5x speed gain.
There are also situations where you have one or many tabs opened (e.g. youtube) that load CPU too much for other tabs to work smoothly as they should, let alone the browser interface (I understood you completely discard interface responsiveness as an improvement). In Firefox and Chromium that's not an issue, because that heavy tab can do whatever it wants, it won't affect performance of most of the other tabs .
As for your performance loss using Nightly (btw what Nightly versions were that?), I think it can be attributed to using of the so-called shimmed addons that don't support e10s.
Tbh I don't understand why one has to be in denial about all this...

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

Re: What will Basilisk's parralel-processing be like. Will it have comparable gains to electrolysis?

Unread post by Moonchild » 2017-11-19, 01:18

So, because I don't agree with the marketing speak conveniently ignoring all the drawbacks, I'm in denial, now? :eh:

Locking this thread.
"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