Geekbench Preview
We’ve put together a preview of Geekbench, our cross-platform benchmarking program, for Mac OS X (as a universal binary) and Windows. While Geekbench isn’t terribly pretty (it’s just a command-line application), we hope some people will find it useful.
Benchmarks
Geekbench features a number of different benchmarks that test CPU (both integer and floating-point) and memory performance. Here’s a brief summary of what each benchmark does:
mandelbrot (sqrt)computes a Mandelbrot set using the square root function for some of the calculations.mandelbrot (sqrt)is multi-threaded.mandelbrot (nosqrt)computes a Mandelbrot set without using the square root function for any of the calculations.mandelbrot (nosqrt)is multi-threadedblowfish (cache)performs Blowfish encryption on a dataset small enough to fit in a processor’s cache.blowfish (cache)is multi-threaded.blowfish (memory)performs Blowfish encryption of a dataset too large to fit into a processor’s cache.blowfish (memory)is multi-threaded.emulate 6502executes code compiled for the 6502 in a virtual 6502 processor.emulate 6502is single threaded.memory (stdlib) fillfills a block of memory with values using standard library functions.memory (stdlib) fillis single threaded.memory (stdlib) sequential accessaccesses chunks of memory in a larger block of memory sequentially using standard library functions.memory (stdlib) sequential accessis single threaded.memory (stdlib) random accessaccesses chunks of memory in a larger block of memory randomly using standard library functions.memory (stdlib) random accessis single threaded.memory (stdlib) copycopies one block of memory to another using standard library functions.memory (stdlib) copyis single threaded.memory (stream) copycopies memory from one location to another using processor operations.memory (stream) copyis single threaded.memory (stream) scale,memory (stream) add, andmemory (stream) triadall copy memory from one location to another while manipulating the contents of the memory. All three benchmarks are single threaded.
For all of the benchmarks, higher results are better.
Benchmark Results
We’ve posted sample benchmark results for:
- a Power Mac G3 450MHz
- a PowerBook G4 1.25GHz
- a Power Mac G5 1.6GHz
- a Dell Dimension 4500 (Pentium 4 2.26GHz)
System Requirements
- Mac OS X version requires Mac OS X 10.4 or later and 80MB free memory.
- Windows version requires Windows 95 or later and 80MB free memory.
Download
Comments?
Comments and feedback are appreciated, so what you think of Geekbench!

there is no explantion of what optimizations you have used for your benchmarks.
useful to make this clear.
For the benchmarks we’re writing platform-neutral C and C++, so there are no platform-specific optimizations (like AltiVec or SSE3) in the benchmarks. We also don’t use any exotic compilers (like the Intel or IBM compilers); we build Geekbench with what we consider the de-facto standard compiler for each platform, and with the optimizations the compiler suggest for release code.
What we’re trying to measure is the performance of a platform as a whole. If we started using exotic compilers (or exotic compiler options) I don’t think we’d accomplish that goal.
since you’re not releasing a version for linux, nor any source, I’m wondering if the results would be accurate when running this through wine.
ie: does the program issue any system calls within any of the number crunching loops?
Mr. Poole it should be “de-facto” rather than “de-factor”. The first means “in fact” or “in practice” while the second means, uhm… well, it isn’t a real word.
What about the source code?
Free the source, so one can test it out on linux for instance…
That way one could test it on linux on any kind of hardware… (excluding the Operating System from the benchmark equation)
Can you provide the source, please?
Please advise us if you free the source. Thz.
mazintel@gmail.com
http://www.maZintel.com
Microsoft has downloadable versions of both Win XP 64 and their Visual Studio Extreme Edition C++ compiler. Why not build a 64-bit version of GeekBench and perhaps we might see better results for x86-64 Wintel.
A search on “lmbench” gets no hits—which seems kinda sad. didja at least look at it?
It would be good if you could have an alternative machine-parseable output (XML or JSON or key/value pair or Python marshalled dict or something). This would make it easier to do post-processing of the output. I do understand that any Perl hacker worth his salt can parse the current output, but just a suggestion.
Blake,
Preview 3 has a command-line switch that saves the results as an XML file.