Slashdot Mirror


Benchmarks of Debian GNU/kFreeBSD vs. GNU/Linux

An anonymous reader writes "The Debian Squeeze release is going to be accompanied by a first-rate kFreeBSD port and now early benchmarks of this port have started coming out using daily install images. The Debian GNU/kFreeBSD project is marrying the FreeBSD kernel with a GNU userland and glibc while making most of the Debian repository packages available for kfreebsd-i386 and kfreebsd-amd64. The first Debian GNU/kFreeBSD benchmarks compare the performance of it to Debian GNU/Linux with the 2.6.30 kernel while the rest of the packages are the same. Results are shown for both i386 and x86_64 flavors. Debian GNU/kFreeBSD may be running well, but it has a lot of catching up to do in terms of speed against Linux."

6 of 143 comments (clear)

  1. Mod Article Flamebait by TheRaven64 · · Score: 5, Insightful
    Okay, so I only read the first couple of pages because it's Phoronix who have a history of inflamatory and misleading benchmarks, but from what I saw:
    • Sometimes Linux is faster.
    • Sometimes FreeBSD is faster.
    • Usually the difference between the two is smaller than the difference between IA32 and x86-64.
    • The tests were mostly either CPU- or I/O-bound, so there are lots of factors beyond the kernel that would affect the results.
    • Debian kFreeBSD uses an old FreeBSD kernel, not sure how old the Linux kernel is but it's probably not representative of the speed of recent releases of either kernel.
    --
    I am TheRaven on Soylent News
  2. Re:Please educate me a bit. by eqisow · · Score: 4, Informative

    Why use freebsd with GNU apps, when you can just run freebsd? And why freebsd and not lets say, openbsd or netbsd?

    They actually have a NetBSD port as well as a Hurd port. They also have a nifty why NetBSD section. There doesn't seem to be a similar page for kFreeBSD, but I assume the reasons are similar.

  3. Re:Holy moley ! by MBGMorden · · Score: 4, Informative

    As others have said, 64-bit programs take more memory to run. There's nothing inherently faster about 64-bit registers and operations unless you're dealing with integers that get that big (which in most everyday programs, they don't). What makes 64-bit faster isn't just "more bits", but optimizations. 32-bit code is typically compiled for the lowest common denominator: i386. However, x86-64 CPU's are guaranteed to be at least i686 compatible (you're also guaranteed up to a certain level of SSE compatibility and such). In that regard, it's the code optimization that we can rely on and not "more bits" (which due to extra memory usage, will typically make things SLOWER, not faster) to make things faster.

    However, not every app or test really benefits that much from i686 optimizations. For those that don't, and don't deal in larger numbers (AND that don't use so much memory that a 64-bit chip is needed to address it), 32-bit processors will typically be faster.

    As to stability, x86-64 is well past the "new" stage. The specification is 10 years old and processors based on it 7 years old - Linux support was almost immediate. Just how long does it take for you to consider it not bleeding edge anymore? :)

    --
    "People who think they know everything are very annoying to those of us who do."-Mark Twain
  4. Re:Holy moley ! by TheRaven64 · · Score: 4, Insightful

    On most architectures, 64-bit code is slower. Pointers are bigger, which means you need more memory bandwidth to load them and you use more cache holding them. On x86-64, the situation is confused by the fact that 64-bit means 'using Long mode,' as well as 'using 64-bit pointers'.

    Long mode gives you 64-bit registers (so you can store 64-bit values in a single register, rather than spread across two, doubling the number of 64-bit values you can store in registers), more registers, and a few other benefits like removing the 'must use EAX as the target' restriction on a lot of instructions (reducing the number of register-register moves, and decreasing instruction cache usage as a side effect). 64-bit pointers use more memory bandwidth and data cache.

    For best performance on x86-64, you want pointers to remain 32 bits, but still run in Long mode. The OS should make sure that everything is mapped below the 4GB line for the process. As far as I am aware, no operating systems actually support this mode of operation. Without that, for any process using less than 4GB of address space, you have some advantages and some disadvantages when running in 64-bit mode. Whether the advantages outweigh the disadvantages, or vice versa, depends on the code.

    --
    I am TheRaven on Soylent News
  5. Re:Please educate me a bit. by vlm · · Score: 4, Informative

    but other than a gui I see no outstanding advantage over the FBSD package system

    As a gauge of relative activity level in each package system:

    The weekly list of UPDATED (and possibly NEW) BSD packages at

    http://www.freshports.org/ports-new.php?interval=week

    is roughly equal in size to the weekly list of NEW Debian packages at

    http://packages.debian.org/unstable/main/newpkg

    So, each week, there is about as much new stuff added to Debian as there is updated preexisting stuff in BSD.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  6. Re:Holy moley ! by gmack · · Score: 4, Informative

    You missed out on the fact that there are more registers on 64 bit than the famously register starved 32 bit x86. More places to put things can't hurt even if your not dealing in 64 bit values.

    The problem with 64 bit is that a lot of code is still hand tuned to the maximum possible performance on 32 bit arches and in at least a couple of the cases listed in the benchmarks I wouldn't be shocked if there was some hand done assembler involved. I have also noticed GCC has some performance tweaks that work around the lack of registers on 32 bit that also tend to get enabled in 64 bit..