mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 10:05:29 +00:00
Fixes BZ#382407. Produces the following terse output: -- bigcode1 -- vanilla : no: ----- me: ----- ca: ----- he: ----- ca: ----- dr: ----- ma: ----- ra3-005 : no: 0.0% me: -4.7% ca: 0.2% he: -1.1% ca: -1.5% dr: -0.6% ma: 0.0% ra3-005-J : no: 0.0% me: 0.4% ca: 0.3% he: -0.5% ca: -0.9% dr: 0.0% ma: 0.6% ra3-006 : no: 0.0% me: 0.4% ca: 0.2% he: -0.0% ca: -1.2% dr: 0.0% ma: 0.0% ra3-007 : no: 0.0% me: 0.7% ca: 0.5% he: -0.5% ca: -0.6% dr: 0.0% ma: 1.2% instead the full output (when the option is not used): -- bigcode1 -- bigcode1 vanilla:0.09s no: 1.6s (18.0x, -----) me: 3.1s (35.0x, -----) ca:12.7s (140.8x, -----) he: 2.0s (22.8x, -----) ca: 3.7s (41.2x, -----) dr: 2.0s (22.2x, -----) ma: 1.9s (20.7x, -----) bigcode1 ra3-005:0.09s no: 1.6s (17.8x, 1.2%) me: 3.0s (33.3x, 4.8%) ca:12.7s (140.7x, 0.1%) he: 2.0s (22.2x, 2.4%) ca: 3.6s (40.2x, 2.4%) dr: 1.9s (21.7x, 2.5%) ma: 1.9s (20.7x, 0.0%) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16461
=============================================================================
Notes about performance benchmarks
=============================================================================
For each benchmark, here is a brief description and notes about its
strengths and weaknesses.
-----------------------------------------------------------------------------
Artificial stress tests
-----------------------------------------------------------------------------
bigcode1, bigcode2:
- Description: Executes a lot of (nonsensical) code.
- Strengths: Demonstrates the cost of translation which is a large part
of runtime, particularly on larger programs.
- Weaknesses: Highly artificial.
heap:
- Description: Does a lot of heap allocation and deallocation, and has a lot
of heap blocks live while doing so.
- Strengths: Stress test for an important sub-system; bug #105039 showed
that inefficiencies in heap allocation can make a big
difference to programs that allocate a lot.
- Weaknesses: Highly artificial -- allocation pattern is not real, and only
a few different size allocations are used.
sarp:
- Description: Does a lot of stack allocation and deallocation.
- Strengths: Tests for a specific performance bug that existed in 3.1.0 and
all earlier versions.
- Weaknesses: Highly artificial.
-----------------------------------------------------------------------------
Real programs
-----------------------------------------------------------------------------
bz2:
- Description: Burrows-Wheeler compression and decompression.
- Strengths: A real, widely used program, very similar to the 256.bzip2
SPEC2000 benchmark. Not dominated by any code, the hottest
55 blocks account for only 90% of execution. Has lots of
short blocks and stresses the memory system hard.
- Weaknesses: None, really, it's a good benchmark.
fbench:
- Description: Does some ray-tracing.
- Strengths: Moderately realistic program.
- Weaknesses: Dominated by sin and cos, which are not widely used, and are
hardware-supported on x86 but not on other platforms such as
PPC.
ffbench:
- Description: Does a Fast Fourier Transform (FFT).
- Strengths: Tests common FP ops (mostly adding and multiplying array
elements), FFT is a very important operation.
- Weaknesses: Dominated by the inner loop, which is quite long and flatters
Valgrind due to the small dispatcher overhead.
tinycc:
- Description: A very small and fast C compiler. A munged version of
Fabrice Bellard's TinyCC compiling itself multiple times.
- Strengths: A real program, lots of code (top 100 blocks only account for
47% of execution), involves large irregular data structures
(presumably, since it's a compiler). Does lots of
malloc/free calls and so changes that make a big improvement
to perf/heap typically cause a small improvement.
- Weaknesses None, really, it's a good benchmark.