# 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.