Slashdot Mirror


Measuring The Benefits Of The Gentoo Approach

An anonymous reader writes "We're constantly hearing how the source based nature of the Gentoo distro makes better use of your hardware, but no-one seems to have really tested it. What kind of gains are involved over distros which use binary packaging? The article is here."

48 of 467 comments (clear)

  1. Misses the point by keesh · · Score: 5, Interesting

    The source-based thing isn't even why most people use gentoo. According to a recent poll on the gentoo-user mailing list, most people like it because of Portage (the package management system), with Customisation / Control coming in second (performance was third). Portage rocks. Even with the compiling, it takes less time to install some stuff (eg nmap) than it would take to locate the relevant .rpm. Of course, kde's a different matter, but with distcc compiling doesn't take too long.

    Having said that, it looks like the guys doing the testing got their CFLAGS wrong. Gentoo's performance should never be worse than Mandrake -- I reckon they forgot omit-frame-pointer. Also, the kernel compile is unfair, because gentoo-sources includes a whole load of patches that Mandrake and Debian don't.

    Finally, what's with measuring compile times? How is that a fair way of measuring performance? Hey, look, my distcc + ccache + lots of CPUs system with gcc3.2 can compile stuff faster than your single CPU gcc2 system... It's like comparing chalk and oranges.

    1. Re:Misses the point by ecchi_0 · · Score: 5, Insightful
      Finally, what's with measuring compile times? How is that a fair way of measuring performance? Hey, look, my distcc + ccache + lots of CPUs system with gcc3.2 can compile stuff faster than your single CPU gcc2 system... It's like comparing chalk and oranges

      Except in this case they all had the same hardware on each machine...

    2. Re:Misses the point by arkanes · · Score: 4, Interesting
      The key points to recognize from the article are: a) GNUmeric's performance sucks (8 minutes to open a file? I won't even think about the other version...) and b) that the CPU is not a signifigant bottleneck in modern systems. We all knew that. It's one reason why so many people are happy with binary packages, because the speed increase from saving some cycles generally isn't worth the extra time you lose compiling (as seen, in many cases it makes 0 difference).

      I would have liked to see some tests with things that are more CPU than IO bound, but, realistically, how often do you do those things in the normal case?

      If the main reason is to use portage for the convenience (same reason many people use debian), maybe they need to expand portage to support binary packages.

    3. Re:Misses the point by scotch · · Score: 5, Insightful
      Why the hell would you introduce a distributed computing tool in a discussion about evaluating the performance of a single machine/OS? Pure obfuscation. Typical gentoo-missing-the-point behavior. Either compiling the kernel is a fair measure of the speed of the system or it isn't. distcc doesn't play into it. Here's a fun analogy. You want to see which is faster a porche 911 or a chevy corvette. So some thoughtful guys put together a series of tests, one of which is a 1000 mile race. Then along comes user keesh (202812) who says "Bad test, I wouldn't drive 1000 miles, I would take the train."

      A hearty helping of wtf is in order. Some of your other points are ok, though ;).

      --
      XML causes global warming.
    4. Re:Misses the point by countvlad · · Score: 5, Informative

      Portage can be used to install binary (precompiled tbz2 packages of ebuilds).

      From emerge --help:

      --usepkg (-k short option)
      Tell emerge to use binary packages (from $PKGDIR) if they are available, thus possibly avoiding some time-consuming compiles.This option is useful for CD installs; you can export PKGDIR=/mnt/cdrom/packages and then use this option to have emerge "pull" binary packages from the CD in order to satisfy dependencies.

      --usepkgonly (-K short option)
      Like --usepkg above, except this only allows the use of binary packages, and it will abort the emerge if the package is not available at the time of dependency calculation.

      You can also, of course, emerge rpm and install any RPM packages. I'm not sure about debian .deb packages or slackware .tgz packages.

      Gentoo is also accept pre-orders for it's upcoming 1.4 release. Information can be found here, at the Gentoo Store.
      They even have precompiled packages optimizaed for Athlon-XP's - drool!

    5. Re:Misses the point by antiMStroll · · Score: 4, Interesting
      What's missing in the article is the second half of Gentoo's compile options, the /etc/make.conf USE variables. CFLAGS determines CPU architecture, USE adds or removes the options for extra software support. In stock form Gentoo compiles binaries with a huge number off add-ons, including support for KDE, Gnome, framebuffer, etc. From make.conf: " USE options are inherited from /etc/make.profile/make.defaults." The list from a current Gentoo 1.2 looks like:

      USE="x86 oss 3dnow apm arts avi berkdb crypt cups encode gdbm gif gpm gtk imlib java jpeg kde libg++ libwww mikmod mmx motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt quicktime readline sdl slang spell ssl svga tcpd truetype X xml2 xmms xv"

      Without knowing what support Debian or Mandrake used to compile binaries, this is still an apple/oranges comparison. My notebook isn't configured to compile with KDE or Gnome extensions because the hardare is too old and I use Fluxbox. Mandrake and Debian may still turn out faster (the Gentoo Mozilla e-build was legendary for being slow), but that's not quiet yet proven.

    6. Re:Misses the point by cperciva · · Score: 4, Interesting

      first, I'd love to see a distro be faster than "up2date package_name" or even "aptget package_name".

      FreeBSD Update. Ok, it only upgrades the base FreeBSD install, starting at binary releases, along the security branches; but it uses binary patches to dramatically cut down on the bandwidth usage (and therefore the time used). A typical install of FreeBSD 4.7-RELEASE (released in October 2002) has 97 files totalling 36MB bytes which need to be updated for security reasons; FreeBSD Update does this while using under 1.6MB of bandwidth.

    7. Re:Misses the point by buchanmilne · · Score: 4, Interesting

      Portage rocks.

      If you have a fast processor. My Duron 800 can keep itself busy for a weekend compiling OpenOffice.org ...

      Even with the compiling, it takes less time to install some stuff (eg nmap) than it would take to locate the relevant .rpm.

      This is on my Thinkpad 600X, which is a 500 PIII/192MB, with a pretty slow disk:

      [root@bgmilne-thinkpad mnt]# rpm -q nmap
      package nmap is not installed
      [root@bgmilne-thinkpad mnt]# time urpmi nmap
      installing /var/cache/urpmi/rpms/nmap-3.00-2mdk.i586.rpm

      Preparing...
      #some hashes replaced to fool the lameness filter#
      1:nmap
      #some hashes replaced to fool the lameness filter#
      5.34user 1.36system 0:26.76elapsed 25%CPU (0avgtext+0avgdata 0maxresident)k
      0inputs+0outputs (1712major+8394minor)pagefaults 0swaps


      You would need quite a system to beat 26s I think.

      Also, the kernel compile is unfair, because gentoo-sources includes a whole load of patches that Mandrake and Debian don't.

      From the article:

      "The same 2.4.21 source was copied to all machines and compiled using the same options. However, it should be noted that the Debian system used gcc 3.3.1 whilst the Mandrake and Gentoo installations used gcc 3.3.2 ."

      I don't see the point of:
      -not using the default compiler on the system
      -if you don't use the default compiler on each machine, at least use the same compiler across them all

      But, otherwise, the comparison looks pretty fair.

    8. Re:Misses the point by Vellmont · · Score: 4, Insightful
      I think you're probbably right about the reasons for using Gentoo (though I admit I've never actually used Gentoo).

      However, I think that a kernel compile _is_ a fair measure of overall system performance. It involves lots of disk, memory, and processor access, so it's a decent indicator of across the board performance.

      As far as kernel compile versions go, from the article:
      The same 2.4.21 source was copied to all machines and compiled using the same options. However, it should be noted that the Debian system used gcc 3.3.1 whilst the Mandrake and Gentoo installations used gcc 3.3.2 .

      So the kernel source was the same, not Gentoo source.

      You say the performance problems are because they got the CFLAGS wrong. If this is the case it only seems to underscore how easy it is to screw up optimizations with Gentoo. It's great for people that know all the proper optimizations for a particular piece of hardware, but I think the majority of people just don't know this offhand.

      In any case I find it very interesting the big differences you can see in performance between distributions on the same hardware (and I'm assuming similar kernel versions).
      --
      AccountKiller
    9. Re:Misses the point by lspd · · Score: 4, Insightful

      It definitely is not unless they were using unpatched sources in all three systems. The Gentoo sources applies bunches of patches to the stock kernel which would affect compile time.

      RTFA. "The same 2.4.21 source was copied to all machines and compiled using the same options. However, it should be noted that the Debian system used gcc 3.3.1 whilst the Mandrake and Gentoo installations used gcc 3.3.2"

    10. Re:Misses the point by Sancho · · Score: 4, Informative

      One of my favorite uses for Gentoo is optimizing for size rather than execution speed. As you say, the CPU is rarely the bottleneck these days, but loading files from the disk can be a factor in a program starting up. I've done the benchmarks, and some rather large programs see significantly reduced load times when optimized with -Os.

    11. Re:Misses the point by dougmc · · Score: 5, Interesting
      the CPU is not a signifigant bottleneck in modern systems.
      Are you on crack? Even today, the CPU speed is a signifigant bottleneck for many operations.

      Now, the cpu speed has increased by a larger factor than memory speed and disk speed over the last few years, but it's still quite a large bottleneck in many operations, including the ones tested in this (admitedly lacking) test.

      Even the speed of a kernel compile, which is often given as a classic `disk I/O bound' process, is extremely CPU bound. How do I know? Running `top' on an idle box shows 0% cpu utilization. Once I start the compile, it goes to well over 90% cpu utilization and stays there until the compilation is done. (just to be complete, I'm testing this on a dual p3 700 box with SCSI disks, doing a `make -j2'. But even my 2ghz Athlon computer with IDE disks works similarly.)

      Perhaps I'll do some tests with adjusting the CPU multiplier on a given box, see how that affects compilation times. That would be an excellent test ...

    12. Re:Misses the point by nagora · · Score: 4, Informative
      but, realistically, how often do you do those things in the normal case?

      You obviously don't use GIMP or analyse OS mapping data much. I have the RAM to get the info into memory, IO is not an issue for much of my work.

      Having said that, portage is the main reason I've converted all my machines to Gentoo; it's just not a serious option to go back to RPM based systems after using it for a week or so.

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    13. Re:Misses the point by gibber · · Score: 4, Informative

      Changing the CPU multiplier will not give you what you are looking for as it will likely change your FSB speed and L1/L2 cache access rates. The most common bottlenecks on systems are heirarchical IO bandwidth related. For example, having scads of RAM for buffer/cache will help you with disk IO woes.

      Compiling binaries with optimization for a particular processor help with i-cache and d-cache utilization. The fewer instructions fetched (or the order in which they are fetched) makes a big difference in performance.

      Boosting CPU cache size (up to practical cache limits), increasing FSB speed and avoiding disk IO are much more significant than CPU M/GHz.

      Compilation, especially optimized (-0X) compilation is _VERY_ CPU intense. If you have enough RAM to avoid the disk thrashing caused by writing numerous intermediate files you will peg your CPU.

      Most user activities (aside from games) on computers are not bottlenecked by CPU but by various heirarchical IO constraints and hence the previous poster was correct that the CPU is not a significant bottleneck on modern systems.

    14. Re:Misses the point by arkanes · · Score: 4, Insightful

      You're right, I don't, and neither does anyone else. Even in your case, memory IO is likely to be as much of a bottleneck as the CPU, if not more. One of the reasons the new Mac walks over PCs in Photoshop benchmarks is massive memory bandwidth.

    15. Re:Misses the point by loginx · · Score: 4, Interesting

      I've read the article very carefully and I've also looked at the people who wrote it...

      Real-world benchmarks is a serious matter, I don't even know why this article made its way into /.

      It's rather obvious that those people were not familiar with CPU optimizations and were not thorough with the benchmarking considering they didn't even bother to check for the version/revision of the base package of the distros they were working with even though they do admit that even minor revisions play a considerable role with performance.

      1) What are the version/revisions of GCC on those machines? A package compiled and optimized with GCC 3.3 or even the 3.4 beta will obviously offer much better performance than an old deprecated gcc 3.2 that will be installed by gentoo by default if you haven't set up your ACCEPT_KEYWORDS

      2) What hard-drive optimization did they set-up? Distros like Mandrake, Debian or Redhat set up HDParm optimizations after the first install, gentoo barely does... That would already make a big difference while opening a 32,000 lines spreadsheet...

      3) What are the versions/minor revisions of the Gnome window manager on all those boxes? and GTK? Those packages provide the controls and rendering for Gnumeric... having any difference in these is not fair-play either... (try to install the same version of Gnumeris on a redhat 9.0 and a redhat 7.2 and see if the performance is the same)

      To get back on the example of the sports-car race, this is kind of like benchmarking a porche and a ferrari, but you put diesel in the ferrari and forget to inflate your tires...

      Basically, if you don't have experience using gentoo on a system for a while and know how to optimize your system, don't go and say that the optimizations don't work... they work perfectly well for me but I couldn't see a difference in my first 2 weeks of using gentoo... it's something you have to learn... you can't just install it and pretend the distro will self-optimize for you...it's not even supposed to.

    16. Re:Misses the point by realdpk · · Score: 3, Interesting

      Try -static - on FreeBSD it can improve performance for very fast running binaries significantly (such as ones designed to run 100s of times/s). I dunno about on Linux (although I've noticed that Linux seems to prefer dynamic binaries for everything.)

    17. Re:Misses the point by Deadplant · · Score: 3, Insightful

      CPUs still aren't fast enough for me.
      maybe I'm not representative of 'most users'

      at work I do video processing and at home i play games and encode DVDs to mpeg4.
      Even 2.4ghz cpus take hours to encode entire movies... I can get a little better than realtime encoding to mpeg4, but when you add two-pass, and the fact that the videos are so damn long... I wish i could get a terahertz CPU...

      you try running a 2 pass encode on a 6 hour 720x480 DV video file and then tell me your CPU is fast enough.

      it always makes me chuckle when people say that 'this or that' part of the PC is as fast as it needs to be.
      There all sorts of things we can't do because our systems aren't nearly fast enough.

  2. Slow? by peripatetic_bum · · Score: 5, Interesting

    Can this be correct. Debian turns out to he fastest?

    Anyway, I like the idea of gentoo, and I saw I a lot of Debian users head over to gentoo because the idea of controlling everything including the build was nice, however, I saw the gentoo idea also pretty much die, since a log of these users are power desktop users and not everyone could wait 3 days for X to build.

    What I like about debians packages is that if you do make a mistake you can always pretty much correct the package by fixing your souce list or goingt o packages.debian.org and getting the older working package and installing it manuaall with a simple dpkg -i old_package.deb.

    In gentoo, you had to rbuild to the whole thing, whihc with x coud take forever. And so what I saw gentoo suddenly doing was having a lot of pre-complied binaries start being provided by gentoo because they saw the problem with building taking forever, and so it kind of killed the whole idea of building for yerself, in which case, if you are going to stick with built pacakged why not have them maintained by some of the best developers around (ie debian)

    The othjer thing I noticed is that a lot of developers of software acutally use debian. I've noticed many a time that some cool software wa being made and the developers wouls provide source and they would provide a debian package and nothting else. Ie Debian appears to be the preferred developer's distro. In this I would like to hear discussion,.

    Thansk all

    --

    Sigs are dangerous coy things

  3. FreeBSD's ports by Anonymous Coward · · Score: 4, Interesting

    I don't use Gentoo (When I use Linux, I use Slackware), but I do use FreeBSD and its ports collection.

    Purported performance gains are one thing source packages give you (although I don't enable super optimizations because you never know when gcc bugs with -march=pentium4 -O3 or whatever will bite you).

    There are two major reasons I like installing from source, though. One is that you can customize the build to your system; lots of software packages have various compile time options, and when I have the source I can choose exactly how it's going to be built.

    Another thing is that when you install from source, you can hack the program to your heart's content. On my desktop box there are around 15 programs that I have to modify to get to act like I want (from simple things like getting cdparanoia to bomb immediately when it detects a scratch to halfway complex things like rewriting parts of klipper and XScreenSaver, which now picks a random screen saver on MMB and lets me scroll through all screensavers with the wheel =).

    I don't modify stuff on my servers, but I still get to choose exactly how things are built, which I very much enjoy.

  4. From a LFS perspective by shoppa · · Score: 4, Interesting
    I don't use Gentoo, but I do use Linux From Scratch, and I do see substantial improvements with command-line type activities: A kernel build on a Athlon is about 20 percent faster when I do it with a custom LFS build vs a stock RedHat installation.

    Most of the comparisons in the article were for X-related graphics applications, and while they were comparing the versions of the applications, they were not comparing the libraries underneath them (glibc, X11, and probably the window manager too come into play) and they should've compared versions there too. It becomes complicated because for a typical X11-based app there are probably several dozen libraries involved (in addition to all the configure-time options for them...)

  5. The Mindcraft method, against itself by lavalyn · · Score: 4, Insightful

    Besides, before doing any comparisons on Debian vs. Gentoo they should have compared Gentoo vs. Gentoo on different optimizations. Like using -O2, -Osize, -mfp-math=sse. Comparing video drivers. Trying different filesystem types. And a whole gaggle of other configurables at compile-time.

    You'd be yelling bloody murder if Microsoft sponsored a study without doing this sort of research before pitting Windows vs. Linux.

    --
    Doing the Right Thing should not be preempted by making a buck.
    1. Re:The Mindcraft method, against itself by Arker · · Score: 3, Interesting

      The odd thing is that, from what I've read, a lot of Gentoo folk seem to be trying to compile everything with -O3. This is, frankly, bloody stupid. This turns on a lot of 'optimisations' that are only useful on a few programs and actually harmful for most, and is probably one of the reasons it looked bad in this test.

      O1 is the safe level of optimisation. Even O2 runs the risk of doing more harm than good, although it's a fairly low risk. O3 runs a very high risk of doing more harm than good. In many cases Osize is probably the best option anyway, because I/O is more commonly the bottleneck than cpu capability.

      And the processor optimisations can also be risky. Every processor out there is designed to run commercial i386 code as fast as possible anyway.

      The big wins in compiling yourself are control of configure options, not compiler optimisations. I think source-based distributions are a great idea, but I have to wonder if most people using them right now are getting the benefits.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
  6. Re:right now by Rosco+P.+Coltrane · · Score: 4, Funny

    Using it. It rocks. Best Linux distribution yet.

    So are Debian, RedHat, SuSE and Slackware, according to Debian, RedHat, SuSE and Slackware users (respectively). I take it you're a Gentoo fan?

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
  7. Makes an excellent point by JanneM · · Score: 3, Insightful

    There are a lot of issues one can bring up with the test - not identical versions of various software; different X drivers, one distro will have patches missing in the others and so on. Clearly, that greatly influences the results.

    And that is a good point to take home. Optimizing compiles is _not_ the panacea for speed and responsiveness that - a minority, I believe - of source-based distros tend to bring up. There are so many other factors intimately involved in it that any benefits are generally lost in the noise.

    For some specific components, it can be a good idea - but for those, most distros tend to ship several optimized versions that the installer chooses between at installation time.

    Another domain that benefits are specialized, compute-intensive applications; things like simulators or other technical stuff. But then, those apps are generally tweaked and compiled by their users no matter what distro is used anyway.

    --
    Trust the Computer. The Computer is your friend.
  8. You still have dependency hell by grotgrot · · Score: 5, Interesting

    I tried Gentoo for a while and eventually gave up. The problem is that you still have dependency hell. Most packages look for stuff at compile time, and many have optional components. For example a video player may not include support for QuickTime unless the libraries are already on there at compile time.

    So the fun starts when you start installing stuff, they don't include support for other components because they weren't there at compile time, you then discover the missing support, have to install the missing libraries and then recompile every package.

    This is an especially big issue with multi-media stuff, and gets many layers deep as some libraries have optional components depending on other optional components.

    About the only way to guarantee a fully uptodate system is to keep doing complete recompiles of the entire system until there are no changes.

    1. Re:You still have dependency hell by GweeDo · · Score: 4, Informative

      Looks like someone failed to set their USE flag properly. If you have it set right you will get support for all you want. Or if you do "emerge -vp packagname" before doing an actual emerge you can see what optional flags aren't getting used. People that use Gentoo but don't read the portage/emerge/use documents are asking for this. Gentoo isn't for all, it is only for the willing.

      Please go here and reas as much as possible for installing Gentoo so you don't do something stupid.

  9. Interesting, but I have to wonder. by Enahs · · Score: 3, Interesting
    For me, Gentoo is a great choice partially because I like the control and partly because I use crufty hardware that doesn't fall into any predefined (read: Intel) category.

    Try using binaries compiled for an i686 on a Via C3-1G, for example.

    Yes, if your entire reason for using Gentoo is to have control over how apps are built, starting from stage3 pretty much defeats the purpose, and yes, if you don't know what you're doing, then rebuilding X can be a real drag. However, I have to say that I appreciate the fact that Gentoo manages to avoid a lot of legal issues by having the user build the packages her/himself. Honestly, I'd love to be Ogg Vorbis-only for music on my computer, but when I own a portable MP3 player, an MP3-capable DVD player, an in-dash MP3 player, and use OS X at work where QuickTime Ogg Vorbis support is dodgy at best, I want lame. And I want lame support built into kdelibs or whatever lame support needs to be built into so that I can drag-and-drop 192kbps ABR MP3s from an audiocd:// ioslave window to my mp3 folder. ;-D

    My own experience has been that Gentoo outperforms Debian on my hardware, but only after I've done some tweaking on Gentoo. YMMV.

    --
    Stating on Slashdot that I like cheese since 1997.
  10. One more thing by Enahs · · Score: 4, Interesting
    From the article:

    Upon testing with hdparm, it was apparent that this machine was having troubles setting above udma2. Eventually this problem was traced to the HD cable, a salutary lesson in the variability of identical hardware setups.

    Very telling pair of sentences.

    --
    Stating on Slashdot that I like cheese since 1997.
  11. Unfair test by periscope · · Score: 5, Insightful

    There seems to be little attention given to the fundamental unfairness of this test presented.

    The distributions were running with different software versions initially and although this was corrected there seems to have been little consideration given to the minor tweaks given to each different installation used. Which services were running on each system? Were the kernel settings identical in use? Were the machines experiencing differences in performance due to the X setup causing X to add different loads?

    etc.

    Fundamentally this test was probably not complete enough to suggest anything in particular. Perhaps it would have been better to boot a single machine three times and perform the sequence of events exactly the same each time as this would have also ruled out some other potential factors.

    Jon.

    --
    http://www.jonmasters.org/
  12. Happy as a wet turtle Gentoo user by GweeDo · · Score: 3, Informative

    I have been using Gentoo for months now and will never turn back. Little of this has to do with performance and 99.9% of has to do with Portage. Package management, dependency checking and the lot are SO great. Secondly is where performance comes in. Without proper CFLAGS you might as well ignore this. On my Athlon XP 2800 I have this:

    CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -mmmx -msse -m3dnow"

    In some simple tests I have done I have seen this as worth while. I have two pages I have created that might be worth a read:

    CFLAGS Guide
    Is -mmmx and such worth it?

    Hope you enjoy these reads.

    1. Re:Happy as a wet turtle Gentoo user by Fnord · · Score: 4, Informative

      Your "Is -mmmmx and such worth it?" guide is a little unfair. Thing is, you notice that only -O3 really made much of a difference. Well, that's because each of your tests is just one big loop and -O3 does heavy loop unrolling. You basically chose the absolute optimal case for -O3 to win (besides possibly having a small function call inside that loop so that -O3 could inline it). And you didn't do any floating point multiplies or divides which is where -mmmx+sse and -m3dnow would help you.

      If anything you were also using a relatively small dataset. If you get a large enough data set (or code size) -O3 might actually hurt you (loop unrolling and function inlining will bloat both code and data size and make it much more likely to have a cache miss).

      Anyways, synthetic benchmarks are one thing but your is so synthetic as to be rediculous.

  13. Ob. Translate-o-matic post by tempest303 · · Score: 4, Funny

    Here you go, the obligatory Gentoo Zealot Translate-o-matic reference!

    Enjoy!

  14. No. Gentoo is not a performance leader. by 0x0d0a · · Score: 5, Interesting

    Having said that, it looks like the guys doing the testing got their CFLAGS wrong. Gentoo's performance should never be worse than Mandrake -- I reckon they forgot omit-frame-pointer.

    Omit-frame-pointer is not a regular optimization. Working without stack traces to hand to a developer if you have a problem isn't really a reasonable optimization unless you're doing something like an embedded system, where you couldn't get at the stack trace anyway.

    This is *exactly* what the real tech-heads have been saying for years, what my tests confirm, etc. A minor change in a couple of compile flags above -O2 almost *always* makes very little difference. Compiling your own packages really just plain doesn't matter. Maybe if gcc really was incredibly tuned to each processor, but certainly not with the current compiler set.

    Also, the kernel compile is unfair, because gentoo-sources includes a whole load of patches that Mandrake and Debian don't.

    And perhaps the inverse is true, too?

    Look, the point is, Gentoo is not significantly faster than any other general distro out there. If you use it, it's because you like their tools or packaging scheme. You aren't cleverly squeezing out more performance.

    Oh, and last of all, I've seen compiler folks saying that it's not that unusual for -O3 to perform worse than -O2. When I was taking our cache performance analysis bit in university, cache hits and misses really *is* the dominant factor in almost all cases. Loop unrolling and function inlining can be a serious loss.

    Finally, compiling for different architectures generally makes very little difference on any platform other than compiling for i586 on a Pentium. The Pentium runs 386 code rather slowly. The PII and above will happily deal with 386 code.

  15. Catch 22 by Alethes · · Score: 4, Insightful

    It seems that the people that would benefit the most from a source-based distro and optimizing binaries specifically for their hardware are the ones with the slow hardware that will take too much time to get everything installed for it to be a worthwhile investment of time.

  16. Default Install = Stage1? by aSiTiC · · Score: 4, Insightful

    I didn't see anywhere in the story if the Gentoo installation was done from scratch stage1 or from stage3. I would think this would be a very important piece of information to mention.

  17. The Things that Really Matter in a distro by 0x0d0a · · Score: 4, Insightful

    It's not worth it. Moving from distro to distro for performance is pretty ridiculous.

    Here's what I'd consider, since this is where the biggest differences lie:

    * How frequently are new releases announced? Frequent new releases may be better for hobbyists, but a pain in the ass for servers sitting in a back room somewhere. (It's the reason RH can see an enterprise edition that's simply not released as frequently).

    * How do you like the packaging system? Try out apt, emerge, up2date (actually, don't -- up2date truly sucks. Everyone using RH who cares about automatic updating has long since started using apt or (IMHO, better) yum).

    * How do you like the config system? Most vendors have their own interface to let you configure the system. RH used to use linuxconf, and is now using Redhat-config. SuSE uses yast.

    * How much do you care about commercial support? A few widely used distros tend to get the only commercial support. Mandrake gets a little, but if you're going to be running packages that require support (especially binary-only), you're probably best off with Red Hat.

    * Which desktop environment do you want to use? Mandrake puts more work into KDE on their system, Red Hat into GNOME.

    Arguments about speed or features is really pretty meaningless -- common software is generally packaged for most of these, and rare software for none (use checkinstall to *make* packages -- you'll be much happier). It's still Linux with the GNU suite present.

    People that switch from distro to distro (or maintain *multiple* distros on their machine) are nuts, IMHO. It's a fair amount of work to relearn the quirks of each

  18. I beg to differ subjectively by marienf · · Score: 3, Insightful

    Although I never actually *measured* anything, I have been moving all my boxen (except for one Duron on which I have found it quite impossible to compile Gentoo) to Gentoo 1.4rc4. I was actually in the process of building my own compile-in-place GNU/Linux called "Q-Gnu/Linux" when I discovered Gentoo did it all, and did it better. I was all RedHat before that (going so far as to wear a red fedora on parties - I have two of those). I find Gentoo as opposed to RedHat quite impressive, at least. My professional workhorse (on which I'm currently typing) is a Toshiba Satellite Pro 4300:

    model name : Celeron (Coppermine)
    stepping : 3
    cpu MHz : 597.077
    cache size : 128 KB

    ..with 384MB RAM.. and was becoming annoyingly slow in things requiring major GUI complexity, like OpenOffice, and at compiling many Java classes.

    Compiling Gentoo on there allowed the machine a third chance at life, the second one being when I got it (already old then) and installed RedHat on it, over that would-be-OS it came with. It just feels that much faster again. I am no longer annoyed by it at all. It took more than 4 days to compile all I wanted from the Gentoo 1.4rc4, but it was *well* worth it.

    I moved my personal little server, an Athlon Thunderbird, with the same impression. Currently running

    emerge system

    on my brand new Athlon XP 2600, expecting much from it.

    Bottom line: Nothing but Kudos for Gentoo, wondering what went wrong during the tests described, or whether somehow the subjective speedups I have experienced are just auto-suggestion. I think not. I have been staring at CRT's since 1980, thats 23 years folks! And I tell ya compiling stuff yourself is worth it. So if you have time on your side, go for LFS, which I did, and slowly ground into Q-GNU/Linux. If you have some time, but not *that* much time, go for Gentoo, if you have no time, you poor shmuck, either get a life, or install SuSe :-), and pretend.. :-) :-)..

  19. Re:right now by 0x0d0a · · Score: 4, Insightful

    If you invest a lot of time in learning a distro, you're terrified that it might not be the best, and will spend ridiculous amounts of time insulting the others.

    Hence, the distro wars.

  20. This article is flawed... by eWarz · · Score: 4, Insightful

    They optimized Gentoo for the p3 platform? Celeron 1.4 ghz and above is based on the p4 core.

  21. All this really shows is that these were bad tests by oobar · · Score: 4, Interesting

    When I see things like the program time going from 39m 08s to 11m 21s (when all that was changed was a minor version number) that just screams -bad testing-.

    You should repeat every one of the tests a number of times, and make sure that you get the same (or similar) results each time. You should not NEVER expect a 4:1 ratio of performace doing the exact same task on identical hardware. Bells should be going off that say "casual testing" when you see something like that.

    Besides, there are so many variables that have to be kept the same between the different installs - which services are running, how they are configured, what kernel options are set, what patches have been applied to the kernel, which modules are loaded... If you pick up Redhat 9 and do a "kitchen sink" install, you will hardly have the same amount of free RAM for caching, etc. compared to doing the "regular" install of some other distro that leaves out things. Hopefully it's obvious that such a comparison that would not be fair at all.

    In short, you should take a given kernel source, with a fixed set of patches, options, settings, modules, etc., and complile it with the default i386 options and then a second time with all the fancy optimizaions, then compare those. LEAVE EVERYTHING ELSE THE SAME! Repeat with glibc.

    The results in this article are just pathetic. They vary all over the place and are crying out for more rigorous testing methods and procedures. Making a good test is really a science, you have to design the test to specifically measure what it is that you're interested in. For all we know one of those tests could have already had a majority of the libraries loaded into the disk cache, resulting in the huge performance differences.

  22. Define 'same' by The+Monster · · Score: 4, Insightful
    Except in this case they all had the same hardware on each machine...
    That is frankly impossible. Even though the machines were supposed to be identical:
    Upon testing with hdparm, it was apparent that this machine was having troubles setting above udma2. Eventually this problem was traced to the HD cable, a salutary lesson in the variability of identical hardware setups.
    This is just the difference they caught. Who knows how many other subltle variations exist between nominally identical machines? An honest attempt to determine how fast 3 distros do the same thing would be to really use the same hardware, by running the tests on one or more machines with one distro, then wiping the HDs and installing the second and repeating the tests, then on to the third.

    The only way to have the same hardware is to use the same machine for each distro. Period.

    --

    [100% ISO 646 Compliant]
    SVM, ERGO MONSTRO.

    1. Re:Define 'same' by VPN3000 · · Score: 4, Informative

      Agreed. Back when I was a hardware tech in the early 90's, I recall building pools of identical machines for customer orders. For burn-in, I would loop benchmarks for 24 hours before shipping them out. There was typically 1-2% difference in identical systems.

      People tend to forget the complexity of a PC and the inevitable, microscopic differences each part made. Thus differences in resistance, heat generated, and performance.

  23. Re:right now by _Knots · · Score: 3, Insightful

    Of course, some realize that distros are good at different things and don't (seriously) insult any of them.

    I use Gentoo on my two main boxes, simply because I toyed with it and haven't found a good reason to switch away yet (two just so I have the same environment on my two main machines). That said, my router runs Debian-testing. I maintain Mandrake machines at work, know my way around a RedHat machine... etc. My 486 ran Slack 8 while it was up. My DECStation runs NetBSD (though that's a different issue entirely).

    I catch flack for using Gentoo, RedHat, Mandrake... my point is, it doesn't matter at all. Use the right tool for the job - that's what open source, and moreso just diversity in the computing environment, is good for! As long as everything speaks TCP+UDP/IP, who cares? ^^

    --Knots;

    --
    Anarchy$ dd if=/dev/random of=~/.signature bs=120 count=1
  24. If you're going to address the benefits... by GMFTatsujin · · Score: 4, Interesting

    The major benefit for me was that Gentoo was the first distro I'd used that gave me the slightest clue about what the operating system was doing, and how the software worked.

    I'd tried RedHat, Mandrake, and a few other distros that set everything up for me so I could "just use it." The problem was that in just using it, I had no idea what I was trying to use. I would go looking for software to do x, y, or z, and I'd either find nothing that seemed to do the job, or a jillion different apps that all did the job differently, and I didn't know why to pick one over the other. Add to that the sense of being at the wheel of an out-of-control car every time I wanted to make a change to a .conf file, and my Linux experience was pretty frustrating.

    Gentoo was a brilliant introduction into how to install a Linux-based OS. It started me off easy -- here's the command line, here are the commands to install the system, here are the .confs you can tinker with and what they do. It gave me flexability while keeping the results trim. The USE flag is the most amazing option I've ever seen.

    Installing Gentoo was more like playing with LEGOs than installing a system, and when I got done with it, I had a computer that I knew, really *knew*. I knew all the init.d services and what they did. I knew what module was controlling what hardware in my kernel *and* how to fix it if it didn't detect properly. I knew all the apps installed, even by their weird names and locations, and I knew what they were there for. I knew it because I built it that way. And I never had to hunt down a dependency or resolve a version conflict. NOT ONCE. Redhat and Mandrake just installed this mysterious Linux Stuff and threw the computer back at me when done. Gentoo got my hands dirty with building it up, but didn't make me jump through hoops to do it.

    The benefit was teaching me what my computer was doing when I used it.

    *THAT* is how I wanted my computer to run. And it does. Thanks, Gentoo team!

    GMFTatsujin

  25. Enough Already... by khyronmaetel · · Score: 5, Insightful

    Ok, I'm a gentoo user. I'll admit a sizable percentage of our ranks dont know what they're talking about, i'll even admit that most distro "speed" is in the users head. But most of you are missing the point. Many gentoo users (including myself) installed gentoo as an ongoing learning experience. Sure, there's really no difference between the "l337ness" of typing emerge foobar and typing rpm -ivh foobar. But those of us who have taken the time to understand the portage system have learned a great deal. As an aspiring programmer, this was my distro of choice because it enabled me to learn about gcc. Also, i like the idea of (although most install standard packages) being able to beta test bleeding edge applications. While there are a lot of phoney gentoo users who are under the impression that theyre furthering the opensource movement by emerging packages, gentoo's backbone a highly active community of volunteers who are really interested in Open Source. Basically, all i'm trying to say is that any idiot can probably get gentoo installed and working, but the real point is to understand the OS that you've built, and i've found that gentoo helps me and others do this better than package based distros.

  26. Re:No. Gentoo is not a performance leader. by 0x0d0a · · Score: 5, Interesting

    Look, Squinky86. I'm not simply pulling this out of my ass. I've had to cover this back in university. I'm not a gcc developer, but I have sat down and gone through generated assembly from the compiler, and have spent many hours tweaking software in every way possible to make it run at a reasonable rate on my old P2/266. There are a very few pieces of software for which arch flags make a measurable difference (as a later poster noted, gzip is one). As for individually specifying flags, I'd be facinated to know what you're trying to use above -O3. You can use -ffast-math. It's unlikely to provide particularly useful results. Approaches like this have been done for a long time (see libmotosh on the PowerPC) -- they can cause the rare, PITA to find problem, and any libs or programs that really need the speed increase have probably done custom work that's even faster than anything you're going to pull with ffast-math (libfftw, for instance). You *might* get some performance gains on povray...but most folks I know compile povray themselves anyway, since it isn't packaged by, say, Red Hat. -fstrict-aliasing is a *very* balsy flag to use if you haven't actually written the software yourself. It's a pretty safe bet that building a lot of unknown software with -fstrict-aliasing will break it. There's a good reason strict aliasing is off by default -- valid C programs (easy ones to write, too) will die with this option, occasionally and in odd ways. You're a damned fool if you use this on *any code* that you did not write or explicitly says that it was written to allow this optimization. I just finished talking to an optimizing compiler designer Thursday who reinforced my feelings about aliasing-dependant optimizations -- they're almost always a bad idea, since the small speedup isn't worth the random problems that you can very very easily induce. -fomit-frame-pointer can produce a small benefit, but surprisingly small, and makes tracking down any crashing bugs or requesting help with a crashing bug infeasible.

    If you know how to and properly configure your compiling flags, the speed gains are tremendous

    Bullshit. The vast majority of software I've run benchmarks on will never see less than a 10% performance gain (and that's being *very* generous...most will see no measurable change) with anything other than the default -O2 or -O3.

    Oh, hell. I was a lot like you not so many years ago, sure that I could speed things up if I just found the right ways to manipulate the code. The only cure for it is actually sitting down and benchmarking things yourself, since you're sure that everyone else is doing something wrong.

    Go ahead, you'll see what I mean. Try building libs that tie up a lot of CPU cycles in multiple apps like libjpeg -- that's where you're going to see your best payback for any optimizations. Time a couple runs.

    but if you just try gentoo, the learning experience and speed gains are very noticeable.

    I think I've adddressed speed gains. As for learning experience, Gentoo is not synonymous with compiling software from source (from that standpoint, Slackware and similar distros blow Gentoo away). I've never bought into the "learning experience" claims -- let folks start out on the GUIs their distro maker provides, and then, regardless of distro, you can quite happily find out what's going on.

    This is not to say that I don't think Gentoo is a worthy distro. I'm a bit of a package management aficiado, and emerge certainly interests me. However, the kind of sweeping claims I see the occasional Gentoo user make on Slashdot are ridiculous. The general-purpose Linux distros are all fairly close together. Distro fans tend to be produced when someone fails to understand how to properly use a different distro (or got accustomed to one), or has sucked down some false claims from other folks, or just don't want to consider that the distro they've sunk lots of time into learning isn't far better than any other choice.

    Now, if you happen to like Gentoo, go for it. But like it for the legitimate reasons, not inflated false ones. Don't make exaggerated claims WRT to it, because misinformation certainly doesn't help out Linux folks in the long run.

  27. Let's take a look at your claims by 0x0d0a · · Score: 4, Interesting

    They need a hardcore gentoo optimizer in there for the gentoo box, someone that knows what they're doing....Hence, I say the person doing the gentoo install is NOT informed on optimizing gentoo and thus renders this test invalid.

    [sigh] Nobody ever listens to me [Dark City].

    Okay, let's take a look at how informed you are. First of all, -mathlon-xp implies -m3dnow, -msse, and -mmmx. -O2 or -O3 is default already on most systems. The only differences -O3 produces is -frename-registers (which does essentially jack on the x86 line) and inlining (which tends to produce very minimal or negative benefits, given the fact that cache misses (which this aggravates) are far more of a timesink for most programs than setting up and returning from function calls). -pipe produces no runtime benefit, though I leave it in my own flags. -fforce-addr, -frerun-cs-after-loop, and -frerun-loop-opt are implied by -O2 or -O3 already. -falign-functions=4 is considered a slowdown for the Athlon line by the gcc team relative to the default (64 on current gcc). I haven't tested -maccumlate-outgoing-args, and I'm not familiar with what it internally does -- the only benchmark I could google for indicated a slowdown caused by it. -ffast-math is a decision of dubious value. Very little code uses floating point math, so ffast-math rarely has an effect. The code that does and actually cares about this degree of performance generally has native implementations that are faster than -ffast-math, since they're special-cased. This can cause software breakage. (We already saw the realization that these sorts of optimizations are of dubious value with Motorola's LibMotoSh for the PPC). -fprefetch-loop-arrays is implied by -O2.

    The overwhelming majority of code does *not* have an #ifdef __SSE__ with alternate code.

    Basically, the only seriously useful flag you used is that which all distros use -- -O3 (and I generally feel that -O2 is a better choice on modern processors, where cache is so critical). -march=athlon-xp can help, but it's unlikely to make a measurable difference on any but a very few pieces of software. Most distro vendors already benchmark and ship versions of software that benefits with a different arch -- look at RH's different RPMs. -fomit-frame-pointer is arguable -- but you're going to probably see *well* under a 10% performance difference, and you have no ability to track down crashing bugs or send in useful bug reports. -ffast-math can cause breakage, and provides little benefit for almost any package (one exception is povray -- it's a floating point heavy package that tries to be portable). I custom-build povray, but then RH doesn't package povray anyway, so that's not too much of a concern.

    Anyway, my point is not to criticize you. I spent my days with a three line CFLAGS string as well, sure that I was producing nicer and better code than anyone else. Then came my benchmarking days and a compiler class and some days picking apart gcc-generated assembly...and I realized that I really wasn't gaining anything.

    If you like Gentoo, do it for the legitimate features that it provides (like emerge), and not for some fanciful performance improvements.