this post was submitted on 30 Dec 2024
30 points (85.7% liked)

Linux

48852 readers
1873 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I looked up specifically examples of this and didn't find answers, they're buried in general discussions about why compiling may be better than pre-built. The reasons I found were control of flags and features, and optimizations for specific chips (like Intel AVX or ARM Neon), but to what degree do those apply today?

The only software I can tell benefits greatly from building from source, is ffmpeg since there are many non-free encoders decoders and upscalers that can be bundled, and performance varies a lot between devices due to which of them is supported by the CPU or GPU. For instance, Nvidia hardware encoders typically produce higher quality video for similar file sizes than ones from Intel AMD or Apple. Software encoders like x265 has optimizations for AVX and NEON (SIMD extensions for CPUs).

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 2 days ago

The performance boost provided by compiling for your specific CPU is real but not terribly large (<10% in the last tests I saw some years ago). Probably not noticeable on common arches unless you're running CPU-intensive software frequently.

Feature selection has some knockon effects. Tailored features mean that you don't have to install masses of libraries for features you don't want, which come with their own bugs and security issues. The number of vulnerabilities added and the amount of disk space chewed up usually isn't large for any one library, but once you're talking about a hundred or more, it does add up.

Occasionally, feature selection prevents mutually contradictory features from fighting each other—for instance, a custom kernel that doesn't include the nouveau drivers isn't going to have nouveau fighting the proprietary nvidia drivers for command of the system's video card, as happened to an acquaintance of mine who was running Ubuntu (I ended up coaching her through blacklisting nouveau). These cases are very rare, however.

Disabling features may allow software to run on rare or very new architectures where some libraries aren't available, or aren't available yet. This is more interesting for up-and-coming arches like riscv than dying ones like mips, but it holds for both.

One specific pro-compile case I can think of that involves neither features nor optimization is that of aseprite, a pixel graphics program. The last time I checked, it had a rather strange licensing setup that made compiling it yourself the best choice for obtaining it legally.

(Gentoo user, so I build everything myself. Except rust. That one isn't worth the effort.)