The release of Ubuntu 20.04 brings GNOME Shell 3.36 and improved performance in some areas. In this article we will describe the improvements that were contributed by Canonical.
As most Ubuntu users tend to stick to LTS releases they mostly will be upgrading from 18.04. If that’s you then you will also notice a larger set of performance improvements introduced in 19.04 2 and especially in 19.10 4. So you might like to read what those are first.
Did you know moving the mouse used to involve JavaScript? Well, now you know moving the mouse used to involve JavaScript.
Wtf? Well that makes one wonder why the hell JavaScript would be used for for touchpad input in the first place. I would think all of that would be handled by xorg / libinput.
I mean there had to be a reason that was put there in the first place, right?
Also, I do like Pop_OS, it is like all of the benefits of using Ubuntu, but with none of the badness, like being fed snaps by default. Also, their window tiling feature is awesome.
Saying it “involved JavaScript” is a bit misleading if you look at the link. The way mouse movement is translated to the cursor moving around the screen doesn’t involve JavaScript. What these JavaScript “handlers” seem to provide is the option of triggering JavaScript actions (I assume on a different thread to avoid UI jank) when specific touchpad gestures are detected – this makes sense since a lot of Gnome’s scripting is done in JavaScript IIRC.
I think it is reported as an issue, so this stupid architecture really exists: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/925
If you look at GNOME or some other projects using web tech in the desktop from the right angle, you can perceive how abominable this “big and important and complex projects” are… Scripting everywhere for the masses so everyone think that can be a l33t cool programmer is really bad in terms of architecture, design principles and performance…
The architecture exists to trigger scripts on certain gestures, yes. It also exists in Windows and Mac, and has nothing to do with leetness and everything to do with allowing any user to implement custom behavior without a recompile. I’d argue that’s admirable and a proven architectural pattern which you can find pretty much in every operating system. The fact that it happens to be JavaScript in this case (which actually is one of the most highly optimized scripting languages around) doesn’t somehow automatically make it bad.
There was an article on OS News a few months ago talking about the effort to optimize Gnome. One of the thing the author stressed was not to assume that the bottlenecks are from JS. Why do people make this assumption?
Anyway, it was pointed out that algorithm decisions were mostly responsible for the sluggishness. Things like waiting a tick here and there, which added up to lag. The JS stuff mostly isn’t slow, as it turns out.
The very next point in the list gives you a hint:
“GNOME Shell is a complex system, kept as simple as possible through JavaScript.”
So it is all about Javascript and about those couple of extra useless handlers lying around? Well… happens.
Pop_OS? The one with the website that is completely blank if your turn off JavaScript 😉
Ha, to be fair to Pop_OS, I bet there are a lot of pages that simply give you a blank page if you disable jjavascript.like so many if you kill cookies 100%, will not work right.
Does Gnome still freeze wayland if you hold in F11 in firefox for too long?
Gnome has always loved this scripting thing. Way back in Gnome 1 times I believe Sawmill/Sawfish was the default window manager, and it was scripted using some kind of LISP variant.
For years leading up to this I would bang my head against the walls on the forums and reddit asking about why Gnome performance was so bad on high end hardware. I was told a combination of things, such as it’s probably an extension you’re using, it’s fine for me etc.
I’m glad we’ve gotten to a point where the problem was acknowledged and people are getting it into shape. Gnome 3.36 is frankly stunning given where Gnome was not that long ago. The Wayland session is in great shape and runs amazingly well. Quite an amazing time to be able to run a full Gnome Wayland session with major applications like Firefox running natively and not through XWayland.
I’m genuinely excited for each Gnome release now as the performance keeps improving alongside the other system improvements.
“lakerssuperman2
For years leading up to this I would bang my head against the walls on the forums and reddit asking about why Gnome performance was so bad on high end hardware. I was told a combination of things, such as it’s probably an extension you’re using, it’s fine for me etc.
I’m glad we’ve gotten to a point where the problem was acknowledged and people are getting it into shape. Gnome 3.36 is frankly stunning given where Gnome was not that long ago. The Wayland session is in great shape and runs amazingly well. Quite an amazing time to be able to run a full Gnome Wayland session with major applications like Firefox running natively and not through XWayland.
I’m genuinely excited for each Gnome release now as the performance keeps improving alongside the other system improvements.”
>
>
Is the perforce of Gnome 3 anywhere near that of what Gnome 2 would’ve been on the same hardware?
No?
‘Nuff said.
Wayland is nice, as long as you don’t run nVidia…
(I should also say, X is nice, as long as you don’t run nVidia…)
CaptainN-,
I should also say, nvidia is nice, as long as you’re prepared for a kick in the face and a bloody nose now and then, haha.
I don’t use Wayland either with Intel or with AMD. Flickering Firefox window frame during move/resize upsets me. And it seems that GTK+ doesn’t fully support DnD (https://gitlab.gnome.org/GNOME/file-roller/issues/4).