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>