When to Use JUnitPerf
Problem
You want to track down potential performance and scalability problems but are unsure of the tools you need.
Solution
Use a commercial profiling tool, such as JProbe or OptimizeIt, to manually inspect code and identify application bottlenecks. Use JUnitPerf to ensure that new features and refactoring do not slow down code that used to be fast enough.
Discussion
JUnitPerf is a tool for continuous performance testing. The goal of a performance test is to ensure that the code executes fast enough, even under varying load conditions. Let’s take a look at a typical scenario.
You just completed a custom search algorithm, complete with a suite
of JUnit tests. Next, the code is run through a profiling tool to
look for any potential bottlenecks. If any performance issues are
found, a new JUnit test is written to isolate the code (if one does
not already exist). For example, the profiling tool reports that the
search took ten seconds, but requirements dictate that it execute in
less than three. The new JUnit test is wrapped around a JUnitPerf
TimedTest to expose the performance bug. The timed
test should fail; otherwise, there is no performance issue with the
code you have isolated. Next, refactor the code that is causing the
performance problem until the timed test passes.
Tip
If the profiling tool did not report any performance issues, you do not have to write JUnitPerf tests. If you are concerned that a new feature might slow down an important piece of code, consider ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access