benchmark


gcc-2.95(prerelease)の効果が結構大きいらしいということをkernel-MLのアーカイブで見て、cvsからひっぱってきていれてみた。まず自作(自hackというべきか)のmp3encoderをcompileしてみると、1割くらい速くなっていた。これはやってみる価値がある、と思いLinux/Unix nbenchのページのnbench(実はずいぶん前にもってきていたのだがほっといてあった)でbenchmarkをとってみた。以下がその結果である。なお、glibc-2.1.1はpgccでcompileして常用していたもの。(compileしなおそうかな…)
まとめた表:
C compiler          : gcc-2.95    : pgcc-2.91.66 : gcc version 2.7.2.3
libc                : glibc-2.1.1 : glibc-2.1.1  : libc.so.5.4.46
MEMORY INDEX        : 1.333       : 1.296        : 1.357
INTEGER INDEX       : 1.298       : 1.199        : 1.239
FLOATING-POINT INDEX: 1.599       : 1.543        : 1.366

CFLAGS = -O2 -mpentium -fomit-frame-pointer -finline-functions -funroll-loops
CFLAGS = -O2 -mpentium -fomit-frame-pointer -finline-functions -funroll-loops
CFLAGS = -O2 -m486 -fomit-frame-pointer -finline-functions -funroll-loops

Baseline (LINUX)    : AMD K6/233, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38

個別(ほとんどnbenchの出力そのもの)
TEST                : Iterations/sec.  : Old Index   : New Index
                    :                  : Pentium 90  : AMD K6/233
--------------------:------------------:-------------:------------
NUMERIC SORT        :          162.96  :       4.18  :       1.37
STRING SORT         :           18.16  :       8.11  :       1.26
BITFIELD            :      4.0628e+07  :       6.97  :       1.46
FP EMULATION        :          10.503  :       5.04  :       1.16
FOURIER             :          2661.3  :       3.03  :       1.70
ASSIGNMENT          :          1.3138  :       5.00  :       1.30
IDEA                :          256.82  :       3.93  :       1.17
HUFFMAN             :          171.95  :       4.77  :       1.52
NEURAL NET          :          1.8096  :       2.91  :       1.22
LU DECOMPOSITION    :          52.558  :       2.72  :       1.97
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX       : 5.261
FLOATING-POINT INDEX: 2.883
Baseline (MSDOS)    : Pentium 90, 256 KB L2-cache, Watcom compiler 10.0
==============================LINUX DATA BELOW===============================
C compiler          : gcc version 2.95 19990713 (prerelease)
libc                : ld-2.1.1.so
MEMORY INDEX        : 1.333
INTEGER INDEX       : 1.298
FLOATING-POINT INDEX: 1.599
Baseline (LINUX)    : AMD K6/233, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
CFLAGS = -s -static -Wall -O2 -mpentium -fomit-frame-pointer \
         -finline-functions -funroll-loops

TEST                : Iterations/sec.  : Old Index   : New Index
                    :                  : Pentium 90  : AMD K6/233
--------------------:------------------:-------------:------------
NUMERIC SORT        :          145.76  :       3.74  :       1.23
STRING SORT         :           16.98  :       7.59  :       1.17
BITFIELD            :      3.9042e+07  :       6.70  :       1.40
FP EMULATION        :          10.991  :       5.27  :       1.22
FOURIER             :            2536  :       2.88  :       1.62
ASSIGNMENT          :          1.3415  :       5.10  :       1.32
IDEA                :          224.13  :       3.43  :       1.02
HUFFMAN             :          153.73  :       4.26  :       1.36
NEURAL NET          :          1.7375  :       2.79  :       1.17
LU DECOMPOSITION    :          51.637  :       2.68  :       1.93
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX       : 4.968
FLOATING-POINT INDEX: 2.782
Baseline (MSDOS)    : Pentium 90, 256 KB L2-cache, Watcom compiler 10.0
==============================LINUX DATA BELOW===============================
C compiler          : gcc driver version 2.95 19990713 (prerelease) executing gcc version pgcc-2.91.66
libc                : ld-2.1.1.so
MEMORY INDEX        : 1.296
INTEGER INDEX       : 1.199
FLOATING-POINT INDEX: 1.543
Baseline (LINUX)    : AMD K6/233, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
CFLAGS = -s -static -Wall -O2 -mpentium -fomit-frame-pointer \
         -finline-functions -funroll-loops

TEST                : Iterations/sec.  : Old Index   : New Index
                    :                  : Pentium 90  : AMD K6/233
--------------------:------------------:-------------:------------
NUMERIC SORT        :          140.88  :       3.61  :       1.19
STRING SORT         :          18.419  :       8.23  :       1.27
BITFIELD            :      3.6011e+07  :       6.18  :       1.29
FP EMULATION        :          11.323  :       5.43  :       1.25
FOURIER             :          1933.2  :       2.20  :       1.23
ASSIGNMENT          :          1.5408  :       5.86  :       1.52
IDEA                :          277.17  :       4.24  :       1.26
HUFFMAN             :          141.94  :       3.94  :       1.26
NEURAL NET          :          1.9187  :       3.08  :       1.30
LU DECOMPOSITION    :          42.546  :       2.20  :       1.59
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX       : 5.162
FLOATING-POINT INDEX: 2.463
Baseline (MSDOS)    : Pentium 90, 256 KB L2-cache, Watcom compiler 10.0
==============================LINUX DATA BELOW===============================
C compiler          : gcc version 2.7.2.3
libc                : libc.so.5.4.46
MEMORY INDEX        : 1.357
INTEGER INDEX       : 1.239
FLOATING-POINT INDEX: 1.366
Baseline (LINUX)    : AMD K6/233, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
CFLAGS = -s -static -Wall -O2 -m486 -fomit-frame-pointer \
         -finline-functions -funroll-loops -I/usr/include-libc5

(C)Copyright 1998, 99 by Sian <sian@big.or.jp>
Last modified: Thu Jul 15 05:29:45 JST 1999