Java Industry News
Coverity Introduces Thread Analyzer for Java
Analysis Tool for Multi-Threaded Applications that Detects Concurrency Defects that Can Cause Data Corruption
May. 7, 2008 03:30 PM
Digg This!
Coverity announced the release of Coverity Thread
Analyzer for Java.
The product is a dynamic analysis tool for
multi-threaded applications that automatically detects concurrency defects that
can cause data corruption and application failures. Coverity Thread Analyzer
can also be used in concert with Coverity Prevent, the static analysis tool, to
create a software quality solution that will help developers control the
complexity of writing multi-threaded applications.
“The continued growth of multi-core processors has forced development teams to
begin creating multi-threaded applications whether they are ready or not,” said
Michael Monticello, security and risk analyst at Enterprise Management
Associates. “To successfully eliminate the concurrency defects inherent to
multi-threaded applications, organizations need sophisticated new tools that
pinpoint these hard-to-find issues so developers can focus on bringing secure
and reliable new products to market.”
Coverity Thread Analyzer for Java observes code as it is executed and
identifies race conditions and deadlocks. The product is unique in the field of
dynamic analysis because it detects not only problems that will occur in
limited testing environments, but also problems that have the potential to
occur over extended operations in field environments.
This distinction is particularly important for multi-threaded applications
that, due to their complexity, may run without failure for extremely long
periods of time before a “perfect storm” of system events triggers a
concurrency defect. For example, the North American blackout of 2003 was due to
a race condition that occurred after 3 million hours of consecutive system
operation.
“We just evaluated Coverity Thread Analyzer on one of our equity trading
applications. We were impressed with Thread Analyzer’s ability to dynamically
identify, with pin-point accuracy, complex concurrency issues in our Java
code,” said Hidekazu Sugiura, Director, Financial IT Division, Simplex
Technology.
Coverity Thread Analyzer is also the first dynamic analysis solution that can
reduce the risk inherent in migrating complex, single-threaded code bases to
perform effectively in multi-core environments. The product accomplishes this
by reporting thread-shared data to users, indicating locations where a locking
discipline should be introduced. This allows developers to pro-actively
identify existing and potential concurrency issues, so they can eliminate them
before they cause failures in the field.
Coverity Thread Analyzer also combines with Coverity Prevent, the static
analysis tool to give Java developers a comprehensive analysis solution that
offers unmatched capabilities to identify and eliminate concurrency and other
critical code defects that can cause slowdowns, failures and crashes. These two
Coverity products integrate static and dynamic analysis by adopting the
strengths of each technique to enhance the other. Specifically, the combined
solution accelerates and lowers the overhead associated with dynamic analysis
while further improving the accuracy of static analysis through the elimination
of false positive results.
Unlike other dynamic analysis products that impose a memory and/or runtime
overhead between 10x and 100x on the software systems they analyze, Coverity
Thread Analyzer has a low 2x overhead for most programs, enabling the tool to
be used in select production environments that include interactive applications
and applications with strict timing requirements.
“As the demand for multi-threaded Java applications continues to accelerate,
software developers are now faced with the pressure to deliver significantly
more complex products, often on the same tight timelines as the single-threaded
products that preceded them,” said Ben Chelf, chief technology officer at
Coverity. “Coverity Thread Analyzer and Coverity Prevent help developers create
high quality multi-threaded applications by combining powerful technologies to
help them eliminate concurrency defects that are nearly impossible to detect
with conventional methods.”
Coverity Thread Analyzer for Java simplifies the process of testing complex
multi-threaded applications that execute concurrent operations. Product
benefits for developers include:
- Automatic Defect Detection
-
Low Overhead
-
Eclipse IDE Integration
-
Coverity Prevent Integration
Coverity Thread Analyzer is a standalone product that runs on the following
platforms: Linux (32-bit & 64-bit), Solaris Sparc, Solaris X86, Windows XP
and Server 2003, Mac OS X. The product supports Sun JDK 1.5, IBM’s 1.5 JVM and
BEA Jrockit 5.
About Java News DeskJDJ News Desk monitors the world of Java to present IT professionals with updates on technology advances, business trends, new products and standards in the Java and i-technology space.