njn | f131b3a | 2005-12-14 05:33:35 +0000 | [diff] [blame] | 1 | ============================================================================= |
njn | fa4d68c | 2005-12-13 17:20:24 +0000 | [diff] [blame] | 2 | Notes about performance benchmarks |
njn | f131b3a | 2005-12-14 05:33:35 +0000 | [diff] [blame] | 3 | ============================================================================= |
| 4 | For each benchmark, here is a brief description and notes about its |
| 5 | strengths and weaknesses. |
njn | fa4d68c | 2005-12-13 17:20:24 +0000 | [diff] [blame] | 6 | |
njn | f131b3a | 2005-12-14 05:33:35 +0000 | [diff] [blame] | 7 | ----------------------------------------------------------------------------- |
| 8 | Artificial stress tests |
| 9 | ----------------------------------------------------------------------------- |
| 10 | bigcode1, bigcode2: |
| 11 | - Description: Executes a lot of (nonsensical) code. |
| 12 | - Strengths: Demonstrates the cost of translation which is a large part |
| 13 | of runtime, particularly on larger programs. |
| 14 | - Weaknesses: Highly artificial. |
| 15 | |
njn | 444e4b4 | 2005-12-17 00:22:39 +0000 | [diff] [blame] | 16 | heap: |
| 17 | - Description: Does a lot of heap allocation and deallocation, and has a lot |
| 18 | of heap blocks live while doing so. |
| 19 | - Strengths: Stress test for an important sub-system; bug #105039 showed |
| 20 | that inefficiencies in heap allocation can make a big |
| 21 | difference to programs that allocate a lot. |
| 22 | - Weaknesses: Highly artificial -- allocation pattern is not real, and only |
| 23 | a few different size allocations are used. |
| 24 | |
njn | f131b3a | 2005-12-14 05:33:35 +0000 | [diff] [blame] | 25 | sarp: |
| 26 | - Description: Does a lot of stack allocation and deallocation. |
| 27 | - Strengths: Tests for a specific performance bug that existed in 3.1.0 and |
| 28 | all earlier versions. |
| 29 | - Weaknesses: Highly artificial. |
| 30 | |
| 31 | ----------------------------------------------------------------------------- |
| 32 | Real programs |
| 33 | ----------------------------------------------------------------------------- |
njn | fa4d68c | 2005-12-13 17:20:24 +0000 | [diff] [blame] | 34 | bz2: |
| 35 | - Description: Burrows-Wheeler compression and decompression. |
| 36 | - Strengths: A real, widely used program, very similar to the 256.bzip2 |
| 37 | SPEC2000 benchmark. Not dominated by any code, the hottest |
| 38 | 55 blocks account for only 90% of execution. Has lots of |
| 39 | short blocks and stresses the memory system hard. |
| 40 | - Weaknesses: None, really, it's a good benchmark. |
| 41 | |
| 42 | fbench: |
| 43 | - Description: Does some ray-tracing. |
| 44 | - Strengths: Moderately realistic program. |
| 45 | - Weaknesses: Dominated by sin and cos, which are not widely used, and are |
| 46 | hardware-supported on x86 but not on other platforms such as |
| 47 | PPC. |
| 48 | |
| 49 | ffbench: |
| 50 | - Description: Does a Fast Fourier Transform (FFT). |
| 51 | - Strengths: Tests common FP ops (mostly adding and multiplying array |
| 52 | elements), FFT is a very important operation. |
| 53 | - Weaknesses: Dominated by the inner loop, which is quite long and flatters |
| 54 | Valgrind due to the small dispatcher overhead. |
| 55 | |
njn | 99c8558 | 2005-12-20 23:02:43 +0000 | [diff] [blame] | 56 | tinycc: |
| 57 | - Description: A very small and fast C compiler. A munged version of |
| 58 | Fabrice Bellard's TinyCC compiling itself multiple times. |
| 59 | - Strengths: A real program, lots of code (top 100 blocks only account for |
| 60 | 47% of execution), involves large irregular data structures |
njn | 02280ba | 2005-12-25 06:27:51 +0000 | [diff] [blame] | 61 | (presumably, since it's a compiler). Does lots of |
| 62 | malloc/free calls and so changes that make a big improvement |
| 63 | to perf/heap typically cause a small improvement. |
njn | 99c8558 | 2005-12-20 23:02:43 +0000 | [diff] [blame] | 64 | - Weaknesses None, really, it's a good benchmark. |
njn | fa4d68c | 2005-12-13 17:20:24 +0000 | [diff] [blame] | 65 | |