Geekbench 2 Benchmarks

Geekbench 2 uses a number of different benchmarks to measure performance. Below is a brief description of each benchmark section and the benchmarks included in that section.

Integer Performance

Integer benchmarks measure integer performance by performing a variety of processor-intensive tasks that make heavy use of integer operations. None of the integer benchmarks perform any file I/O in order to isolate the work done to just the processor and the memory subsystem.

  • Blowfish encrypts and decrypts memory using the Blowfish algorithm.
  • bzip2 Compress and bzip2 Decompress compress and decompress a text file in memory using libbzip2.
  • Image Compress and Image Decompress compress and decompress an image in memory using libjpeg.
  • Lua executes a script written in the Lua Programming Language. The Lua script is a prime number sieve that finds all prime numbers below 200,000.

Floating Point Performance

Floating point benchmarks measure floating point performance by performing a variety of processor-intensive tasks that make heavy use of floating-point operations. None of the floating point benchmarks perform any file I/O in order to isolate the work done to just the processor and the memory subsystem.

  • Mandelbrot renders the Mandelbrot set.
  • Dot Product computes the dot product of two vectors.
  • LU Decomposition computes the LU decomposition of a 128x128 matrix.
  • Primality Test performs the first few iterations of the Lucas-Lehmer test on a particular Mersenne number to determine whether or not it is prime.
  • Sharpen Image and Blur Image apply a convolution filter to an image in memory. These filters are similar to the filters found in graphics editors like Adobe Photoshop.

Memory Performance

Memory benchmarks measure not only the performance of the underlying memory hardware, but also the performance of the functions provided by the operating system used to manipulate memory.

  • Read Sequential loads values from memory into registers.
  • Write Sequential stores values from registers into memory.
  • Stdlib Allocate allocates and deallocates blocks of memory of varying sizes using functions from the C Standard Library.
  • Stdlib Write writes a constant value to a block of memory using functions from the C Standard Library.
  • Stdlib Copy copies values from one block of memory to another using functions from the C Standard Library.

Stream Performance

Stream benchmarks measure both floating point performance and sustained memory bandwidth. Geekbench 2 uses benchmarks based on the STREAM benchmarks developed John D. McCalpin. None of the stream benchmarks perform any file I/O in order to isolate the work done to just the processor and the memory subsystem.

  • Stream Copy computes a(i) = b(i), where a and a b are arrays.
  • Stream Scale computes a(i) = q * b(i), where a and b are arrays, and q is a constant.
  • Stream Add computes a(i) = b(i) + c(i), where a, b, and c are arrays.
  • Stream Triad computes a(i) = b(i) + q * c(i), where a, b, and c are arrays, and q is a constant.