Copyright (C) 2003,2004,2005,2006 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Some benchmark results for various combinations of hardware, Gforth version, and Gforth configuration. Unless specified otherwise, the default configurations were used. You can measure your combination with `make bench'. You can find a table comparing Gforth with six interpretive Forth systems in the manual (Section Performance), and a comparison with more systems in http://www.complang.tuwien.ac.at/papers/ertl&maierhofer95.ps.gz. All times are given in seconds of user time. Development results: sieve bubble matrix fib platform and version 3.51 3.91 3.54 4.07 Xscale 600MHz; 2007-03-12; gcc-3.3.6 2.0 2.3 1.8 2.0 UltraSparc T1 (Sun Fire T1000) 1GHz; Solaris 2.10; gcc-4.0.2; 2007-03-13 Results with Gforth 0.6.2 (for comparing CPUs): siev bubble matrix fib machine and configuration 0.21 0.33 0.14 0.36 Athlon 64 3200+ (2GHz, 1MB L2); gcc-2.95.1; gforth-0.6.2 --enable-force-reg 0.23 0.34 0.14 0.35 Athlon MP 2600+ (2GHz, 0.5MB L2); gcc-2.95.1; gforth-0.6.2 --enable-force-reg 0.23 0.28 0.19 0.34 Pentium 4 2.26 (Northwood); gcc-2.95.1; gforth-0.6.2 --enable-force-reg 0.55 0.73 0.32 0.66 Pentium-III 1000 (Coppermine); gcc-2.95.1; gforth-0.6.2 --enable-force-reg 0.56 0.63 0.36 0.79 Transmeta Crusoe TM5800 (1GHz); gcc-2.95.4; gforth-0.6.2 --enable-force-reg 1.974 2.313 2.033 2.428 Itanium 2 (HP rx2600) 900MHz; gcc-3.3; gforth-0.6.2 0.427 0.676 0.303 0.630 PPC970 (G5) 2000MHz; Linux (32-bit executable); gcc-2.95.4; gforth-0.6.2 1.71 2.18 1.30 2.24 PPC7400 (G4) 450MHz; Linux; gcc-2.95.4; gforth-0.6.2 0.75 1.04 0.41 1.14 PPC7447a (G4) 1066MHz; Linux; gcc-4.1.0; gforth-0.6.2-20060409 4.18 5.43 3.37 5.88 PPC604e (PowerMac) 200MHz; Linux; gcc-2.95.2; gforth-0.6.2 3.83 4.60 4.38 4.38 Xscale-IOP80321 (Iyonix) 600MHz; Linux; gcc-3.3.6; gforth-0.6.2 (with minor fixes) 4.05 4.94 4.67 4.60 Xscale-IOP80321 (Iyonix) 600MHz; Linux; gcc 4.1.2 20061115; gforth-0.6.2 2.6 3.4 2.6 2.9 UltraSparc T1 (Sun Fire T1000) 1GHz; Solaris 2.10; gcc-4.0.2; gforth-0.6.2 All results (for historical perspective): siev bubble matrix fib machine and configuration 0.56 0.63 0.36 0.79 Transmeta Crusoe TM5800 (1GHz); gcc-2.95.4; gforth-0.6.2 --enable-force-reg 0.21 0.33 0.14 0.36 Athlon 64 3200+ (2GHz, 1MB L2); gcc-2.95.1; gforth-0.6.2 --enable-force-reg 0.23 0.34 0.14 0.35 Athlon MP 2600+ (2GHz, 0.5MB L2); gcc-2.95.1; gforth-0.6.2 --enable-force-reg 0.31 0.42 0.19 0.46 Athlon 1800+ (Palomino, 1.533GHz); gcc-2.95.3; gforth-0.5.9-20011224 -DFORCE_REG; ELF with dynamic superinstructions 0.37 0.52 0.24 0.61 Athlon 1200 (Thunderbird); gcc-2.95.1; gforth-0.5.9-20011224 -DFORCE_REG; ELF with dynamic superinstructions 0.75 1.00 1.29 1.20 Athlon 1200 (Thunderbird); gcc-2.95.1; gforth-0.5.9-20011224 -DFORCE_REG; ELF before dynamic superinstructions 1.18 1.53 1.94 1.83 Athlon 800 (Thunderbird); gcc-3.0.2; gforth-0.5.9-20011202 -DFORCE_REG -DUSE_TOS; ELF 1.31 1.67 2.16 1.97 Athlon 800 (Thunderbird); gcc-3.0.2; gforth-0.5.9-20011202 -DFORCE_REG -DUSE_TOS; ELF 1.36 1.80 2.18 1.86 Athlon 800 (Thunderbird); gcc-3.0.2; gforth-0.5.9-20011202 -DFORCE_REG; ELF 1.10 1.46 1.91 1.77 Athlon 800 (Thunderbird); gcc-2.95.1; gforth-0.5.9-20011202 -DFORCE_REG; ELF 0.23 0.28 0.19 0.34 Pentium 4 2.26 (Northwood); gcc-2.95.1; gforth-0.6.2 --enable-force-reg 0.26 0.29 0.19 0.37 Pentium 4 2.26 (Northwood); gcc-2.95.1; gforth-0.6.1 --enable-force-reg 0.60 0.79 1.00 0.92 Pentium 4 2.26 (Northwood); gcc-2.95.3; gforth-0.5.0 -DFORCE_REG; ELF 0.55 0.73 0.32 0.66 Pentium-III 1000 (Coppermine); gcc-2.95.1; gforth-0.6.2 --enable-force-reg 0.61 0.73 0.33 0.67 Pentium-III 1000 (Coppermine); gcc-2.95.1; gforth-0.6.1 --enable-force-reg 1.09 1.32 1.62 1.62 Pentium-III 1000 (Coppermine); gcc-2.95.1; gforth-0.5.0 --enable-force-reg 1.21 1.64 2.06 2.03 Athlon 750 (Thunderbird); gcc-2.95.1; gforth-0.5.0 -DFORCE_REG; ELF 1.27 1.67 1.95 1.94 Pentium-III 750; gcc-2.95.2; gforth-0.5.0 -DFORCE_REG; ELF 0.63 0.89 0.46 0.89 Athlon 600; gcc-2.95.1; gforth-0.6.2-20030910 --enable-force-reg; ELF with native code generation 0.85 1.15 0.55 1.29 Athlon 600; gcc-3.4-snapshot; gforth-0.6.2-20030910 --enable-force-reg; ELF with dynamic superinstructions 0.81 1.09 0.51 1.23 Athlon 600; gcc-2.95.2; gforth-0.5.9-20011224 -DFORCE_REG; ELF with dynamic superinstructions 1.07 1.25 0.58 1.34 Athlon 600; gcc-3.0.1; gforth-0.5.9-20011224 -DFORCE_REG; ELF with dynamic superinstructions 1.52 2.09 2.56 2.59 Athlon 600; gcc-2.95.2; gforth-0.4.9 -DFORCE_REG; ELF 2.39 3.38 4.13 4.18 Celeron 450 (Mendocino); gcc-2.7.2.3 -DFORCE-REG -DDIRECT-THREADED; gforth-0.3.0; ELF 1.97 2.84 3.21 3.24 Celeron 450 (Mendocino); gcc-2.95; gforth-0.4.9 -DFORCE_REG; ELF 6.88 7.43 5.80 8.15 AMD K6-2 300MHz 1M PB cache 100MHz; gcc-2.7.2.3 -DFORCE-REG; gforth-0.4.0; ELF 7.61 8.14 6.50 9.13 AMD K6-2 300MHz 1M PB cache 100MHz; gcc-2.95.1 -DFORCE-REG -DUSE_NO_TOS; gforth-0.4.9; ELF 6.77 7.21 5.39 7.85 AMD K6-2 300MHz 1M PB cache 100MHz; gcc-2.95.1 -DFORCE-REG -DUSE_TOS; gforth-0.4.9; ELF 5.91 6.89 5.99 7.63 Pentium-MMX 200MHz 512K PB cache; gcc-2.95 -DFORCE-REG -DUSE_TOS; gforth-0.4.9; ELF 6.68 7.95 6.41 7.99 Pentium-MMX 200MHz 512K PB cache; egcs-1.1b -DFORCE-REG -DUSE_TOS; gforth-0.4.9; ELF 7.09 7.70 7.20 8.74 Pentium-MMX 200MHz 512K PB cache; gcc-2.95 -DFORCE-REG; gforth-0.4.9; ELF 7.23 7.81 7.22 8.47 Pentium-MMX 200MHz 512K PB cache; gcc-2.7.2.3 -DFORCE-REG; gforth-0.3.0; ELF 7.36 8.16 7.73 9.04 Pentium-MMX 200MHz 512K PB cache; egcs-1.1b -DFORCE-REG; gforth-0.4.0; ELF 10.91 11.94 11.24 13.13 Pentium 133MHz 256K PB cache; gcc-2.6.3 -DFORCE_REG; gforth-0.1beta; a.out 11.16 11.86 10.64 12.53 Pentium 133MHz 512K PB cache; gcc-2.7.2p -DFORCE_REG, gforth-0.3.0; ELF 12.62 13.56 11.04 14.97 AMD K6 166MHz 512K PB cache; gcc-2.7.2p -DFORCE_REG, gforth-0.3.0; ELF 11.81 14.39 13.61 15.07 IBM/Cyrix-6x86 133MHz (P166+) 512K PB cache; gcc-2.7.2.1 -DFORCE_REG -DDIRECT_THREADED; gforth-0.3.0; ELF 12.08 11.90 11.06 12.09 Cyrix-6x86MX 166MHz (PR200) 512K PB Cache; gcc-2.7.2.1 -DFORCE_REG -DDIRECT_THREADED; gforth-0.3.0; ELF 29.89 35.42 26.96 34.59 i486 66MHz 256K cache; gcc-2.6.3 -DFORCE_REG -DDIRECT_THREADED; gforth-0.1beta; a.out 25.87 29.96 23.25 29.98 i486 66MHz 256K cache; gcc-2.95.1 -DFORCE_REG; gforth-0.4.9-20000726; ELF 39.50 45.91 36.73 44.90 i486 50MHz 256K cache; gcc-2.7.0 -DFORCE_REG -DDIRECT_THREADED; gforth-0.1beta 42.82 46.74 38.69 48.30 i486 50MHz 256K cache; gcc-2.7.0 -DFORCE_REG; gforth-0.1beta 1.144 1.329 0.762 1.333 Itanium 2 (HP rx2600) 900MHz; gcc-3.3; gforth-0.6.2-20030910 1.974 2.313 2.033 2.428 Itanium 2 (HP rx2600) 900MHz; gcc-3.3; gforth-0.6.2 0.790 1.375 0.850 1.118 21264B (UP1500) 800MHz 8MB cache; gcc-2.95.2; gforth-0.5.9-20011229 with alignment 0.891 1.646 0.729 1.289 21264B (UP1500) 800MHz 8MB cache; gcc-2.95.2; gforth-0.5.9-20011229 without eliminating jumps 1.383 1.769 2.415 2.139 21264B (UP1500) 800MHz 8MB cache; gcc-2.96; gforth-0.5.9-20011229 2.14 3.11 3.20 3.96 21264 (Compaq XP 1000) 500MHz 4M cache; egcs-1.0.3+gas; gforth-0.4.0 2.03 2.91 3.45 4.39 21264 (Compaq XP 1000) 500MHz 4M cache; gcc-2.95.1 -mcpu=21164a -DFORCE_REG; gforth-0.4.9 1.86 2.09 1.58 2.17 21164a (Alpha,164LX) 600MHz 2M cache; gcc-2.95.1; gforth-0.5.9-20011229 with alignment 1.79 2.24 1.52 2.06 21164a (Alpha,164LX) 600MHz 2M cache; gcc-2.95.1; gforth-0.5.9-20011229 without alignment 2.65 2.87 2.28 3.09 21164a (Alpha,164LX) 600MHz 2M cache; gcc-2.95.1; gforth-0.5.9-20011229 without eliminating jumps 3.09 3.24 2.39 3.42 21164A (Alpha,164LX) 600MHz 2M cache; gcc-2.7.2.1+gas; gforth-0.3.0 2.74 2.95 2.20 3.45 21164a (Alpha,164LX) 600MHz 2M cache; gcc-2.95.1 -mcpu=21164a -DFORCE_REG; gforth-0.4.9 3.7 3.8 2.8 4.1 21164A (Alpha,PC164) 500MHz 2M cache; gcc-2.7.2.1+as (Digital Unix); gforth-0.3.0 6.28 5.94 4.92 5.92 21064A (Alpha,Cabriolet) 300MHz 2M cache; gcc-2.95.2; gforth-0.5.9-20011229 with alignment 6.18 6.07 4.94 5.61 21064A (Alpha,Cabriolet) 300MHz 2M cache; gcc-2.95.2; gforth-0.5.9-20011229 without alignment 7.0 7.6 6.2 7.7 21064A (Alpha,Cabriolet) 300MHz 2M cache; gcc-2.7.2; gforth-0.2.0 7.49 7.85 6.21 8.07 R4400 250 Mhz 2Mb cache; gcc-2.7.2.2; gforth-0.4.0? 7.45 7.98 5.82 9.44 R10000 (SGI PowerChallenge XL) 195MHz 2M cache; egcs-1.1.2 -DFORCE_REG; gforth-0.4.9 17.3 19.0 14.1 18.3 R4000 (DecStation 5000/150) 100MHz 1M cache; gcc-2.4.5; gforth-0.1beta 50.9 56.8 42.4 52.0 R3000 (DecStation 5000/200) 25MHz 64K+64K cache; gcc-2.5.8 -DFORCE_REG; gforth-0.1beta 7.8 8.6 7.0 10.3 UltraSparc-II 248MHz; Solaris.5.5.1; gcc-2.7.1; gforth-0.3.0 28.5 31.1 26.3 33.3 SuperSparc (Sparcstation 10) 40MHz; Solaris.5.5.1; gcc-2.7.1; gforth-0.3.0 59.5 65.8 69.5 61.9 FJMB86903 (SPARC ELC) 33MHz; gcc-2.5.8; gforth-0.1beta 84.34 91.49 76.16 88.83 L64801 25MHz (SPARC IPC) 64K WT cache; gcc-2.4.5; gforth-0.1beta 11.6 12.1 10.8 15.6 PA8000 (HP C160) 160MHz 64M RAM; gcc-2.7.2; gforth-0.3.0 30.0 34.1 20.5 33.0 PA-RISC 1.1 (HP 720) 50MHz 64K cache; gcc-2.6.3 -DDIRECT_THREADED; gforth-0.1beta 0.89 1.17 0.58 1.18 PPC7447A (G4) 1066MHz; Linux; gcc-2.95.4; gforth-0.6.2 1.71 2.18 1.30 2.24 PPC7400 (G4) 450MHz; Linux; gcc-2.95.4; gforth-0.6.2 2.11 2.43 1.52 2.66 PPC7400 (G4) 450MHz; Linux; gcc-2.95.2; gforth-0.5.0 3.36 4.06 2.39 4.33 PPC750 (PowerMac 7500, G3-upgrade) 308MHz; Linux; egcs-1.02; gforth 0.4.0-19990312 4.18 5.43 3.37 5.88 PPC604e (PowerMac) 200MHz; Linux; gcc-2.95.2; gforth-0.6.2 5.56 6.11 4.29 7.42 PPC604e (PowerMac) 200MHz; Linux; gcc-2.95.2; gforth-0.5.0 5.68 6.53 4.25 7.47 PPC604e (PowerMac) 200MHz; Linux; gcc-2.7.2.1; gforth-0.4.0-19990312 6.81 7.53 5.10 8.12 PPC604e (PowerMac) 200MHz; Linux; gcc-2.7.2.1; gforth-0.4.0 8.25 10.09 6.45 10.34 PPC604e (PowerMac) 200MHz; Linux; gcc-2.7.2.1; gforth-0.3.0 (indirect threaded) 14.05 16.96 11.14 17.51 PPC604 (PowerMac) 132MHz 256K L2 cache; MkLinux 2.1; gcc-2.7.2.1; gforth-0.3.0 7.42 8.81 5.96 8.61 PPC603 (Amiga + BlizzardPPC) 160Mhz; gcc-2.95.2 -DDIRECT_THREADED; gforth-0.4.9-19990617 16.29 10.38 7.58 10.5 PPC603 (Amiga + BlizzardPPC) 160Mhz; gcc-2.95.2 -DINDIRECT_THREADED; gforth-0.4.9-19990617 4.38 5.66 3.52 4.86 StrongARM SA-1110 206MHz (iPAQ); Linux; gcc-2.95.2; gforth-0.6.2-20030910 --enable-force-reg --dynamic