Subject: *My* favorite benchmark
To: None <netbsd-users@netbsd.org>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: netbsd-users
Date: 05/15/2007 21:58:17
We've seen a lot of semiscientific benchmark numbers thrown around
lately. I happen to believe that the only benchmarks that matter are
properly written microbenchmarks whose correlation to architectural
features is well understood, and your own application. And of course
benchmarks where you don't normalize everything you can about the system
under test are meaningless.
Microbenchmarks are boring. My application is compiling operating systems,
because I do it many times a day for my job.
Here are results for compiling NetBSD 4 (checked out freshly from CVS as
of this afternoon) with GCC 4.1.2 as the host compiler for the NetBSD
toolchain, on two identical Mac Mini Core Duo machines with 512MB of RAM.
One machine is running NetBSD-current as of May 13; the other is running
FreeBSD 6.2RC2, because it's what I use as a host for building a
FreeBSD-based network device image at work. Unfortunately that means I
will regretfully ignore any requests to run this test with other operating
systems or revisions; I don't have the hardware or time.
Both systems have the stock SMP kernels shipped with each OS's release
images.
Each machine has a single FFS filesystem, with soft dependencies, mounted
on /. The NetBSD system has tmpfs mounted on /tmp; the FreeBSD system has
mfs. Obviously, since both systems are stock Mac Minis from the dealer,
the disks are identical.
These are parallel builds (build.sh -j4) on a dual-core host. I expected
FreeBSD 6 to win this test hands-down. It *really* didn't -- since I do
both FreeBSD and NetBSD kernel development I would actually like very much
to know why.
=======================================================================
NetBSD 4.99.19 (GENERIC.MP) #0: Sun May 13 21:52:49 PDT 2007
builds@wb25:/home/builds/ab/HEAD/i386/200705130002Z-obj/home/builds/ab/HEAD/src/sys/arch/i386/compile/GENERIC.MP
NetBSD-current host, host compiler is GCC 4.1.2 integrated into NetBSD:
=======================================================================
===> Summary of results:
build.sh command: ./build.sh -j4 -V USE_SSP=yes -m i386 -V HOST_CC=cc
-O2 -march=prescott -mtune=pentium-m -fomit-frame-pointer -V HOST_CFLAGS=-O2
-march=prescott -mtune=pentium-m -fomit-frame-pointer -V HOST_CXXFLAGS=-O2
-march=prescott -mtune=pentium-m -fomit-frame-pointer release
build.sh started: Tue May 15 18:24:20 EDT 2007
NetBSD version: 4.0_BETA2
MACHINE: i386
MACHINE_ARCH: i386
Build platform: NetBSD 4.99.19 i386
HOST_SH: /bin/sh
No nonexistent/bin/nbmake, needs building.
Bootstrapping nbmake
TOOLDIR path: /root/nb4src/src/tooldir.NetBSD-4.99.19-i386
DESTDIR path: /root/nb4src/src/destdir.i386
RELEASEDIR path: /root/nb4src/src/releasedir
Created /root/nb4src/src/tooldir.NetBSD-4.99.19-i386/bin/nbmake
makewrapper:
/root/nb4src/src/tooldir.NetBSD-4.99.19-i386/bin/nbmake-i386
Updated /root/nb4src/src/tooldir.NetBSD-4.99.19-i386/bin/nbmake-i386
Successful make release
build.sh ended: Tue May 15 20:01:29 EDT 2007
===> .
=======================================================================
FreeBSD 6.2-RC2 #0: Sun Dec 24 23:42:30 UTC 2006
root@dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/SMP
FreeBSD-6.2RC2 host, host compiler is GCC 4.1.2 from FreeBSD 'ports':
=======================================================================
===> Summary of results:
build.sh command: ./build.sh -j4 -V USE_SSP=yes -m i386 -V
HOST_CC=gcc41 -O2 -march=prescott -mtune=pentium-m -fomit-frame-pointer -V
HOST_CFLAGS=-O2 -march=prescott -mtune=pentium-m -fomit-frame-pointer -V
HOST_CXXFLAGS=-O2 -march=prescott -mtune=pentium-m -fomit-frame-pointer
release
build.sh started: Tue May 15 18:25:28 EDT 2007
NetBSD version: 4.0_BETA2
MACHINE: i386
MACHINE_ARCH: i386
Build platform: FreeBSD 6.2-RC2 i386
HOST_SH: /bin/sh
No nonexistent/bin/nbmake, needs building.
Bootstrapping nbmake
TOOLDIR path: /root/nbsrc/src/tooldir.FreeBSD-6.2-RC2-i386
DESTDIR path: /root/nbsrc/src/destdir.i386
RELEASEDIR path: /root/nbsrc/src/releasedir
Created /root/nbsrc/src/tooldir.FreeBSD-6.2-RC2-i386/bin/nbmake
makewrapper:
/root/nbsrc/src/tooldir.FreeBSD-6.2-RC2-i386/bin/nbmake-i386
Updated /root/nbsrc/src/tooldir.FreeBSD-6.2-RC2-i386/bin/nbmake-i386
Successful make release
build.sh ended: Tue May 15 20:20:47 EDT 2007
===> .
--
Thor Lancelot Simon tls@rek.tjls.com
"The inconsistency is startling, though admittedly, if consistency is to
be abandoned or transcended, there is no problem." - Noam Chomsky