What makes Clear Linux perform much better compared to other distros?

Stateless achitecture is the fancy term CL team uses to say that system updates and package updates are basically the same thing (you can look up in the CL docs for a more detailed explanation: Clear Linux Stateless.
The 4GB of memory usage I’m talking about are when doing normal work (GNOME, Firefox, VS code, Telegram… stuff like that), not on idle. I chose to tell you this usage because unless I misunderstood your use-case and you’re talking about a server, nobody uses a PC just to stare at the wallpaper, and idle memory usage really depends on what you actually mean by “idle”.
If you have some familiarity with Object Oriented Programming, a package is the equivalent of a primitive data type (meaning it’s in some way “atomic”), while bundles are collections of packages and possibly other bundles.
By fixing system partitions I meant fixing problems like overwriting system files and stuff like that. It does not fix filesystem issues.
I think they distribute a “desktopless” version of CL, where you can download any DE you want later, just it’s a bit longer to setup and not really ready-to-use for a normal user.

1 Like

I see.

Oh I see I thought you meant like when you just startup the PC.

Oh lol.

Oh so is it like the equivilant to adding ppas if I typed swupd bundle-add ?

Oh I see.

I see, I don’t want a DE, I just want a tiling window manager so that might work for me just fine.

Not exactly. PPAs are repositories (swupd has beta 3rd-party repositories support, but there are none that I know of). Bundles are… Let’s say “purpose-packages”. Conceptually, a package contains something (especially libraries) that is not enough to do what you actually want to do. A bundle is a super-package that contains all the packages to do something (build GNOME, setup a webserver, compile and debug C programs…), So you don’t have to install a ton of packages manually, because installing a bundle automatically installs all the packages you need.

1 Like

OT

At least:

$ sudo swupd 3rd-party list 
Swupd 3rd-party repositories:
 - greginator: https://clear.greginator.xyz/

Total: 1

He does a great job so far with this repo, so it is worth mentioning. :slight_smile:

2 Likes

I actually did know about that, I even added it, but last week it was offline and I’ve not been able to query it (it wasn’t swupd fault), so I thought he just shut it down…

Maybe because of the update.

1 Like

As for RAM usage, I’ve 32 GB of RAM, with no foreground applications running, it uses about 3-4 GB. I’m using Gnome and just a few extensions. The only costly background service I can think of is Dropbox.

I’m quite okay about the RAM usage. But since I haven’t run any ‘minimal’ Linux distribution before, I cannot say how this compares to others.

1 Like

It’s a good question to dig into. We’ve been working on adding a page to the documentation to elaborate. It should be published any day now :wink: I’ll post a link here once it is.

In short, Clear Linux favors runtime performance.That’s not to say we’re not conscious about other aspects though.

This is true we tend to use more aggressive flags. Also the compilers and low level libraries themselves are also patched.

It depends on the package - could be simple config changes, changing default buffers sizes, changing the order of loading things,etc… In general the approach is to upstream any enhancements if possible

What evidence do you have of this? I’ve only seen one result lately comparing a phoronix CL result with their properly configured gentoo (same CPU and similar hardware) where their numbers were much better (albeit it was only a couple of tests which isn’t representative). Any time phoronix uses a gentoo based system, it’s not even compiled for the host CPU (so same as a generic distro) :rofl:

It does duplicate some libraries and binaries, but that won’t change RAM usage and only 5-10% extra disk space as it’s only done for a handful of packages. You can get slightly higher RAM use from compile flags making binaries larger and including features that you don’t need, which happens with all distros, but possibly more due to bundles including more packages than you might want. The use of bundles rather than packages results in greater disk space as you can’t minimize for your use cases well. In gentoo you would be able to compile out completely support for functions you don’t need (for example printing or samba shares), at the cost of compilng your own system, but would use a lot of disk space in compiling the packages and fetching the sources!

The feature Gentoo lacks is build support for PGO, which is used sparingly in CL and not in combination with AVX2/AVX512 builds last time I looked.

2 Likes

Hi,

When you say the packages are patched, do you mean the Clear Linux project forks gcc, glibc and llvm and modify those packages?

I saw one phronix test and Gentoo was way behind CL and somebody from reddit mentioned that Clear Linux’s optimisation mainly comes from patching the packages. But I guess they were not optimised for that particular hardware, as you have mentioned. Do you have the link to the test that you saw?

Sorry what is a PGO?

One example:

2 Likes

It probably used Calculate Linux (a derivative) which is distributed compiled like every other generic distro. Packages were certainly not compiled for the system CPU or tweaked for optimization. Also you need to understand the phoronix tests, many don’t test the distribution provided package so comparing the results across distributions (to determine the speed of the distribution) is actually insane!

I was thinking of this comment

Turns out it wasn’t the same CPU, it was actually a weaker CPU in the gentoo system that scores 2/3rds of the one tested in CL according to passmark. But it does compromise the comparison nonetheless.

There hasn’t been a proper benchmark done comparing an optimized gentoo vs CL (I’d argue there hasn’t been a proper benchmark comparing any distributions, certainly not by phoronix).

Profile guided optimization.

I see that makes more sense.

I don’t get why don’t they just test on the same hardware?

Yeah you are right about that.

Is this some flag for building applications or something?

PGO is an optimization technique that based on profiling. It first compile the code, then profile it(run it in test cases), then according to heuristics, comiple again with optimisation.

1 Like

So you use gcc to compile the code, right, or is it that you use gcc with pgo?

Various compilers supports pgo. In general, if you don’t understand what that is, you can safely ignore pgo. Because the optimisation may not be significant for many cases. It relies on a good profiling, which may not be feasible. And without pgo compiler can use static analysis to optimised a lot.

2 Likes

I run both Clear Linux and Gentoo. For different reasons.

Regarding the Gentoo comparison and to stay on the thread subject, you can achive pretty much the same result with Gentoo but with 100 times the effort and you really need to know what to tweak or not. I’m not bashing Gentoo, just being honest.

Clear Linux is the only distribution that I know of which does optimization right, straight out of the box.

1 Like

Just out of curiosity, was it difficult to learn how to build Gentoo and custom taylor it to your PC?

I’d have to say yes. But it really depends on how much Linux experience you have in the past.
The installation process is similar to Arch Linux but all else is different.