Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Apr 1995 13:06:30 -0500 (CDT)
From:      Joe Greco <jgreco@brasil.moneng.mei.com>
To:        agl@mac.glas.apc.org (Anthony Graphics)
Cc:        freebsd-hackers@FreeBSD.org
Subject:   Re: Is P5 is faster than DX4 100 under FreeBSD?
Message-ID:  <9504241806.AA02853@brasil.moneng.mei.com>
In-Reply-To: <Pine.LNX.3.91.950424122929.28263A-100000@mail.redline.ru> from "Anthony Graphics" at Apr 24, 95 12:32:48 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> Linux FAQ (or was it HOWTO?) states that bogomips are measured as
> DX2/DX4 Mhz * 0.5
> P5      Mhz * 0.39
> The question is: whether the same thing applies in FreeBSD?
> How P5 60 Mhz compares with 486 DX4 100 Mhz (just a rough
> pointer would be nice). I mean just raw cpu integer performance.
> AGL

It would seem to me that integer performance would be very similar, because
the system is running at a similar speed.

Years ago, I wrote a very simple set of benchmarks with the intention of
being able to use them to perform "orders-of-magnitude" comparisons.  (Along
the way, I discovered that there is indeed a lot of difference that things
like optimizations can make...)  The point was to perform comparisons of
performance for a system that would ultimately become a Usenet news box.
I've since tired of trying to squeeze every iota of performance out of a
box, however, because CPU is (now) relatively cheap.

I still run these tests to this very day, because I believe that they give
me a reasonable feel for a machine's CPU abilities.  (I've typically found
that I/O abilities are dependent on the controllers and peripherals; I have
a bunch of things I look for here as well).  The tests are not by any means
intended to be "fair" - I do not make any explicit attempts to compensate 
for caching, etc.  The tests were intended to give me an idea of what *I*
consider to be reasonable things to consider.

Running on a Pentium 90 with FreeBSD 2.0R, gcc -O:

solarpc# ./simpletests
reg_addition(400000000) 9 secs 44444444 add/sec
mem_addition(100000000) 15 secs 6666666 add/sec
bzero_small(30000000) 25 secs 1200000 str/sec
bzero_large(10000000) 76 secs 131578 str/sec
bcopy_small(15000000) 15 secs 1000000 str/sec
bcopy_large(6000000) 56 secs 107142 str/sec

Running on a 486DX2/80 with FreeBSD 2.0R, gcc -O:

pooh# ./simpletests
reg_addition(400000000) 30 secs 13333333 add/sec
mem_addition(100000000) 38 secs 2631578 add/sec
bzero_small(30000000) 35 secs 857142 str/sec
bzero_large(10000000) 83 secs 120481 str/sec
bcopy_small(15000000) 32 secs 468750 str/sec
bcopy_large(6000000) 114 secs 52631 str/sec

Running on a 386DX/40 with FreeBSD 2.0R, gcc -O:

gateway# ./simpletests
reg_addition(400000000) 123 secs 3252032 add/sec
mem_addition(100000000) 155 secs 645161 add/sec
bzero_small(30000000) 129 secs 232558 str/sec
bzero_large(10000000) 124 secs 80645 str/sec
bcopy_small(15000000) 96 secs 156250 str/sec
bcopy_large(6000000) 197 secs 30456 str/sec

Running on a 386DX/40 with Linux 1.0.9, gcc -O:

curitiba:~$ ./simpletests
reg_addition(400000000) 133 secs 3007518 add/sec
mem_addition(100000000) 165 secs 606060 add/sec
bzero_small(30000000) 186 secs 161290 str/sec
bzero_large(10000000) 155 secs 64516 str/sec
bcopy_small(15000000) 112 secs 133928 str/sec
bcopy_large(6000000) 138 secs 43478 str/sec

Running on a 386DX/16+387 with FreeBSD 2.0-950412, gcc -O:

praxis# ./simpletests
reg_addition(400000000) 329 secs 1215805 add/sec
mem_addition(100000000) 396 secs 252525 add/sec
bzero_small(30000000) 355 secs 84507 str/sec
bzero_large(10000000) 326 secs 30674 str/sec
bcopy_small(15000000) 237 secs 63291 str/sec
bcopy_large(6000000) 319 secs 18808 str/sec

Running on a Sun 3/60 with SunOS 4.1, gcc -O:

solaria# ./simpletests
reg_addition(400000000) 346 secs 1156069 add/sec
mem_addition(100000000) 399 secs 250626 add/sec
bzero_small(30000000) 428 secs 70093 str/sec
bzero_large(10000000) 375 secs 26666 str/sec
bcopy_small(15000000) 307 secs 48859 str/sec
bcopy_large(6000000) 401 secs 14962 str/sec

Running on a Sun SS2 with Weitek CPU and SunOS 4.1.3, gcc -O:

brasil# ./simpletests
reg_addition(400000000) 15 secs 26666666 add/sec
mem_addition(100000000) 288 secs 347222 add/sec
bzero_small(30000000) 82 secs 365853 str/sec
bzero_large(10000000) 177 secs 56497 str/sec
bcopy_small(15000000) 64 secs 234375 str/sec
bcopy_large(6000000) 139 secs 43165 str/sec

Now, if memory serves, Linux bogomips generally come out to about CPU/5 for
386DX's or CPU/2 for 486's.  That would place a 386DX/16 at 3.2 bogomips,
which would correspond to about 380000 additions per second (bear in mind
that the code includes loop code, etc, so this is not unreasonable).  That
suggests that a Sun 3/60 is about 3.04 bogomips, and Sun advertises it as a
3 MIPS box.  (ok that checks out).  So let's extrapolate...

Now, the 386/40 with Linux would be about 7.9 bogomips.  The 386/40 with
FreeBSD would be about 8.6 bogomips (a little over the predicted 8?)...  the
486dx2/80 would be 35.1 (a little under the predicted 40?), and the Pentium
would be 117.0, which does not seem reasonable, although the P90 does appear
to be at least 2x on most of my tests over a 486dx2/80...  so perhaps the
P90 performs very well (and/or optimizes much better) on tight loops.
Interestingly enough, the Linux formula you gave would suggest that the P90
would be rated at 35.1 bogomips.

I then ftp'd a Linux boot disk and did some measurements on the machines I
had easy access to:

machine		bogo
386dx/40	 8.0
486dx2/80	41.1
pentium 90	36.2

Well, draw your own conclusions...

... Joe

-------------------------------------------------------------------------------
Joe Greco - Systems Software Engineer, UNIX/Network Hacker, Etc.   414/362-3617
Marquette Electronics, Inc. - R&D - Milwaukee, WI                jgreco@mei.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9504241806.AA02853>