Port performance enhancements / compiler optimizations from Thorium browser
-
@HunterAP So you lost 3/4 of a second for Vivaldi to render a UI layer that Thorium does not have.
-
@npro More benchmarks:
-
@Ayespy That was just one example - there are lots of other scenarios where Thorium has loaded faster than Vivaldi. Obviously part of it comes from the extra UI and features that Vivaldi has, but considering Thorium has done the brunt of the development work to achieve these performance improvements.
Vivaldi recently had this blog post discussing many performance improvements under the hood that specifically lists that opening new windows is 37% faster. If it only took 3 seconds to load then saving 1 second of that is insignificant by what you described.
Some of the changes would require some work in the code, but part of the changes were just using other compiler flags for effectively free performance. Isn't that worth looking into?
-
@npro and
Vivaldi beats it in all 3 benchmark tests.
-
@HunterAP said in Port performance enhancements / compiler optimizations from Thorium browser:
Isn't that worth looking into?
I wouldn't know. I'm not a developer, don't work for Vivaldi, and have exactly zero speed problems here (not counting the stubborn problem of forum loading, which is at the server side).
-
@HunterAP
But a open a new window take < 1 second in Vivaldi, if not something is wrong.
The main problem is the Vivaldi team keep the Vivaldi source code as close as possible to the Chromium core.
The more you change the more you have to maintain for an update.
They have problems to fix the issues for each update and they skip one Chromium version to keep up with the pace of updates in the Chromium core.Cheers, mib
-
@Ayespy said in Port performance enhancements / compiler optimizations from Thorium browser:
problem of forum loading
have you tried clearing (just) the browser's Cache?
-
Speedometer Test
Thorium 224
Stable 244
Snapshot 6.4 177
Internal 6.4 build 117!
On Windows 11 Pro. -
Internal 6.4 build
Can't be, do you use a clean profile and not using any CPU in the background? (though it's Winblows, you never know what kind of crap is running in the background there)
P.S. Vivaldi's score is even higher with the
--disable-extensions
flag. -
@npro
Clean profile on stable, used on snapshot and soprano with open task manager.
There was no other CPU activity and this was at Ryzen 7 6 core.
I have clean profiles for all, I can test this again.EDIT: Clean profiles are faster but the tendency is different:
Stable 221
Snapshot 241
Soprano 177
I leave Windows now, thought testing on it would be more useful, only 5% use Linux on desktop. -
@mib3berlin said in Port performance enhancements / compiler optimizations from Thorium browser:
only 5% use Linux on desktop.
That's not accurate in the case of Vivaldi, I remember them telling us some years ago that
20%
of Vivaldi's installs are on Linux, I believe the % should be even higher now. -
-
@mib3berlin said in Port performance enhancements / compiler optimizations from Thorium browser:
we occupied your thread for testing
not at all, that testing (3 benchmarks) is the exact testing Thorium does to claim that it is faster than Chromium due to "tweaks", but it isn't faster than Vivaldi, meaning V. could use already certain compiling flags, tweaks etc.
slower on Linux
on your Linux
-
@npro
Haha, if you not run the tests on Windows 11 with the same hardware you cant know.
The Speedometer use ~12 % of my 6 core AMD CPU, a bit more on Windows and there the GPU is full supported.
I guess it is not a real world test, Vivaldi on Linux is faster at starting, open tabs and what not, no question. -
@mib3berlin well theoretically in some other dimension/universe I could try that, but in this one I wouldn't last
the unspeakable horrors!
https://www.youtube.com/watch?v=WRGROMvU7nc -
Hey, a loyal Vivaldi user here, for many years now. A point about Thorium: I won't speak about benchmarks, but given that Vivaldi ended support for older Windows this year, it is highly unlikely that avx2 or similar optimizations could break anything for current users at this point in time, since Vivaldi already stopped working for older software which could be running in old hardware, and AVX2 dates from 2013.
Maybe Vivaldi devs could try importing some of the Thorium optimizations, there are several ones to take a look, and see how it goes? Vivaldi is well tuned, but there is always room for improvement, Some Thorium ones could be effective and relatively easy to implement: Patches are listed in OP, but if you still didn't check them: https://github.com/Alex313031/thorium/blob/main/infra/PATCHES.mdThank you
-
@HunterAP said in Port performance enhancements / compiler optimizations from Thorium browser:
There is a fork of the Chromium browser called Thorium. The main for Thorium is to include compiler and other optimizations to improve performance and add support for features not normally available in Chromium.
Here is the list of optimizations and improvements that the creator of Thorium mentions specifically:
- Compiler optimizations include SSE4.2, AVX, AES, and modifications to CFLAGS, LDFLAGS, thinLTO flags, import_instr_limit flags, and PGO, as well as other compiler flags.
- LLVM LOOP optimizations as -mllvm flags
- UI Changes and Patches for Linux and Windows that fix bugs, enhance useability, and strengthen privacy/security.
- Support for MPEG-DASH, JPEG XL, VAAPI for Linux,
The have the full list of changes here, and there are quite a few of them.
Thorium website: https://thorium.rocks/
Thorium's main GitHub page: https://github.com/Alex313031/thorium
Thorium's Windows builds: https://github.com/Alex313031/Thorium-Win
They similarly have other pages for Linux, MacOS, Windows on ARM64, Raspberry Pi, Android, etc.The reason I mention Thorium is that I have been using Vivaldi for roughly 3-4 years and love the features that it includes, but performance has been lacking for me. Simply opening a new tab of a YouTube video takes longer than even vanilla Chrome or FireFox, and they both get beaten out by Thorium. I would love to have the best of both worlds by having the features of Vivaldi with the performance of Thorium.
Hey all,
Just made a completely fresh account here because I was interested in this topic on a similar thread on Reddit, then ran into this suggestion thread. Overall, this is very recent; the one on Reddit is about 8/9 months old, but it does seem that this suggestion is for the most part inspired by the one on Reddit.
However, unlike the thread aforementioned, OP here kinda went into detail on just the technical checklist for each requirement. I think it is also equally important to bring forward the clear key difference between the development strategies of Thorium and Chromium.
And that key difference is such: Thorium opts in toward using these flags (esp. SSE4.2) because they favor more optimized compilation than they do favor widespread compatibility across systems/CPUs. Chromium is the opposite. To top it all off, Thorium still makes this decision despite not supplying necessary codecs like HEVC, although I'm not entirely sure what exactly is their full motivation behind that tradeoff.
Also noted, is that Vivaldi really sticks as close to Chromium as possible, to maintain as much synchronicity as humanly possible, although you didn't hear that from me. I'm just trying to reiterate what information I deciphered from Reddit.
The dev team can finally decide if it is a suggestion worth pursuing, given that info. (And will also decide which of it may even be relevant to them.)
-
@dazinger
Hi, I have test Thorium some time ago and it was not faster on my systems, specs in my signature.
A quick test with Speedometer 2.1 gives me the same result on a clean profile, Vivaldi is faster.
May I test video streaming later, Thorium does not work with GPU support on my Linux box.Cheers, mib
-
@mib3berlin Oh yeah, that's the other thing too. I forgot to mention.
May I suggest that compilation optimization under SSE4.2 would show "best" results under a heavy-load scenario?
As an example: Probably total a number of, let's say, 500 concurrently open tabs across 20 open windows! Believe it or not, it used to be pretty common for me back in the day when I'd have, say, triple monitors, between 7-10 virtual desktops and 20 windows, 25 tabs in each window on average. Assuming the lag wouldn't really get any worse if you were to go any higher than that haha. (Make sure no extensions are applied, either.) Would probably be the most intensive metric against compilation, and I would probably tack all of the major sites at once like twitter, facebook, Instagram, youtube.
And no extensions, obviously.
Looks like maybe without a GPU to back up the Thorium specs though, you might find a CPU bottleneck. I would be surprised if it didn't do that. No compiler flags are that good, lol.
EDIT: I suspect a lot of people would just blame any lag they would see on the UI webview in Vivaldi instead of the compilation. Is Chromium really that useful to compare it when it's never been really optimized that way? Technically, you might see significant improvements under heavy load in Thorium because of that. Extensions, however, throw all of that under the bus no matter which way you spin it.
-
@dazinger
Yeah, that seems possible, the last poll about tab using some time ago result in 8% of Vivaldi user use more than 100 tabs.
No idea how many use more than 300?
I use two windows on my 2 display desktop system sometimes but even with 700 tabs in 5 workspaces and playing a 4k video in the second window Vivaldi does not lag for me on my Ryzen 7 system.
May you check the new workspace feature in Vivaldi, no multiple windows needed anymore.
I test always without extensions, Thorium comes with preinstalled uBlock extension.
No social media on my systems.
I test on Windows 11 dev again and Thorium is about 10% faster on Speedometer, without uBlock.
It is more the missing features keep me away from other browsers, mail, calendar, speed dial, notes, panels and much more i use on a daily basis.
I can add extensions but then I get the extension problem, makes no sense to me.Have a nice day, mib