Java Reference
In-Depth Information
Chapter 2. An Approach to
Performance Testing
This chapter discusses four principles of getting results from performance testing; these prin-
ciples form the basis of the advice given in later chapters. The science of performance engin-
eering is covered by these principles.
Most of the examples given in later chapters use a common application, which is also out-
lined in this chapter.
Test a Real Application
The first principle is that testing should occur on the actual product in the way the product
will be used. There are, roughly speaking, three categories of code that can be used for per-
formance testing, each with its own advantages and disadvantages. The category that in-
cludes the actual application will provide the best results.
Microbenchmarks
The first of these categories is the microbenchmark. A microbenchmark is a test designed to
measure a very small unit of performance: the time to call a synchronized method versus a
nonsynchronized method; the overhead in creating a thread versus using a thread pool; the
time to execute one arithmetic algorithm versus an alternate implementation; and so on.
Microbenchmarks may seem like a good idea, but they are very difficult to write correctly.
Consider the following code, which is an attempt to write a microbenchmark that tests the
performance of different implementations of a method to compute the 50th Fibonacci num-
ber:
public
public void
void doTest () {
// Main Loop
double
double l ;
long
long then = System . currentTimeMillis ();
Search WWH ::




Custom Search