Slashdot Mirror


Java Profilers - Which One Are You Using?

splitPersonality asks: "Our Java programmers are researching various profilers to use in-house. We would appreciate some feedback from other shops that are using Java profilers. Along with the specific product, would you please include reasons behind your choice? If you now have misgivings about the one you or your shop chose, please let me know about those, as well."

4 of 79 comments (clear)

  1. YourKit: awesome profiler by jnana · · Score: 5, Informative
    I give my most enthusiastic recommendation to YourKit. It takes about a minute to install, has optional integration (1-click) with Eclipse, IDEA, Netbeans. I use Eclipse, and the integration there adds a new 'Profile as' options that works just like the 'run as' and 'debug as' launch options.

    YourKit is extremely easy to use thanks to a very intuitive interface.. All the java developers I've shown it to have been as impressed as I've been. It is cheaper than most profilers -- I got a deal on it for $125 a few months ago, which I is about 25% of the normal price, but it's still cheap at $499. It's not open-source, but they have a forum where they answer they questions extremely quickly. I've had 1 or 2 bugs since I've been using it (about 10 months), since I like to use the early release version for newer features, and both have been fixed within days, with a new build released within a week or so. Memory leaks are a snap to find using it's "compare snapshot", which lets you compare 2 snapshots and shows you what the difference is -- memory leak is generally the difference if you capture your snapshots intelligently.

    Anyway, I can't speak highly enough of the product. For the record, I have no affiliation with them at all. I'm just a very happy customer.

    My only minor gripe is that under some circumstances, the fastest CPU profiling option (unnoticeable impact on the running app) can give inaccurate results, in which case I have to use one of the two slower CPU profiling options, which are much, much slower--but that's certainly not particular to YourKit.

  2. Re:Which one? Isn't it obvious... by Anonymous Coward · · Score: 4, Informative

    I use several tools depending on the application.

    For step-through-your-code debugging nothing beats Jprobe, although perhaps a fellow slashdotter
    can suggest a public domain equivalent

    If you want to profile your code in a "production" situation, i.e. you need minimal overhead
    while instrumenting methods to understand where in your stack trace time is being spent
    you have two options. Mercury Interactive sells a product that instruments all methods,
    aggregates method usage and gives you a "top talker" summary. Wyle Introscope on the other
    hand instruments only the methods you want, but can drill down into things like JDBC and capture
    executed SQL. Their product Leakhunter can help you find memory leaks, but creates too much drag for prod usage.

    Finally if want something that combines elements of Mercury's inclusive approach of instrumenting
    everything and top talker summaries and with Wyles approach of watching for heap usage, GCs and so
    on you want a copy of YourKit. I own all the products mentioned but have to say YourKit is my current favorite.

  3. JRat by Anonymous Coward · · Score: 5, Informative

    JRat is open-source, and works anywhere using bytecode injection. It's the only serious solution for profiling applications running in production as it

    A) doesn't require much overhead
    B) doesn't require code changes
    C) doesn't require some sort of front-end to monitor or use
    D) doesn't have a rediculous cost per server
    E) runs in your typical environment, not some magical profiling IDE option

    We use this every day (via an ant task) to profile a Wall Street trading system that handles billions of dollars of transactions every week. Would you trust that to anything else?

    Signing anon because my employment contract specifically prevents me from revealing this sort of thing :) Enjoy.

  4. For us... by Leftmoon · · Score: 4, Informative

    We use DevPartner which seems to work pretty well for me. It's fairly neat the way it works. Although it does seem to identify some things as memory leaks that probably aren't actually leaks (ResultSets, IBM MQ Series objects, etc), if you limit the check to your own packages, a lot of your in-house errors will stand out right way and it will ignore the (assumed) false spots. Give it a try.