What are some interesting, free, open-source Dynamic Analysis tools for Java?

10,043

Solution 1

Cobertura and Emma will perform code coverage analysis.

In terms of multi-threaded correctness, FindBugs will do some of this. However it performs static analysis. i.e. not whilst the program is running.

Solution 2

Check out Glassbox, a troubleshooting agent for Java applications that automatically diagnoses common problems. Glassbox deploys as a war file to your appserver and then uses AspectJ load time weaving to monitor application components and other artifacts, in order to identify problems like excess or failed remote calls, slow queries, too many database queries, thread contention, even what request parameters caused failures.

Glassbox monitors applications non-invasively by using aspects to track component interactions. We also monitor built-in JMX data, notably on a Java 5 VM we sample thread data (every 100 ms by default). As a request is processed, we summarize noteworthy events such as where time was spent and what parameters were involved in making things slow or fail. We also detect higher-level operations (such as Struts actions or Spring controllers) that we use to report on. Our AJAX Web client then provides summaries of status by operation on the machines being monitored and we generate a more detailed analysis on request. Glassbox allows monitoring clusters of servers: the Web app uses JMX Remote or direct RMI to access data from remote servers. We also provide JMX remote access to the lower-level summary statistics.

Share:
10,043
Grundlefleck
Author by

Grundlefleck

Technical lead; open-source author and contributor; conference speaker. I care deeply about building software to solve problems. Whether I’m creating delightful user experiences; building tools for fellow developers; improving performance and reliability of mission critical systems; or removing friction in the everyday tasks of colleagues, I find joy in making people’s lives easier.

Updated on June 04, 2022

Comments

  • Grundlefleck
    Grundlefleck almost 2 years

    I am looking for some interesting dynamic analysers to use and report on for a university assignment. The tools should be:

    • Open-source (so I can learn from them)
    • Free (both as in speech and beer, because I want to be able to share the results, and I'm tight-fisted, respectively)
    • Intended for Java (source or bytecode)

    This includes, but is not limited to, performance profilers. They can perform any kind of analysis, as long as it's dynamic, for example, code coverage, multi-threaded correctness.

    The results generated should be useful in some way, but they do not have to be industrial strength.

    Similar question:

    So what are some interesting, free, open-source Dynamic Analysis tools for Java?

  • Grundlefleck
    Grundlefleck over 14 years
    Yourkit is not free, or open source. Though it does have an evaluation period.
  • Grundlefleck
    Grundlefleck over 14 years
    +1 For an interesting looking tool. Do you happen to know if it's constrained to web applications?
  • Devanshu Mevada
    Devanshu Mevada over 14 years
    Glassbox is a WAR so it must be deployed in an appserver but it can monitor resources such as JMS and EJB. So, no, it's not constrained to web applications.
  • Benj
    Benj over 14 years
    Ahh, didn't spot that bit of the question. It is a great tool though, well worth considering anyway.
  • Grundlefleck
    Grundlefleck over 14 years
    Excuse what is probably a silly question, can it analyse any given Java program, like a Swing app? It boasts lots of functionality, but I can't tell the site chooses not to mention basic stuff, or if it's not capable.
  • Devanshu Mevada
    Devanshu Mevada over 14 years
    No, it can only analyze things that run inside a container i.e. server-side apps.