5 Replies Latest reply on Dec 6, 2002 3:05 PM by ssilvert

    Profiling with JProbe degrades performance by 50x

    cdemyanovich

      I've just begun trying JProbe 4.0.1 on our application, which runs on JBoss 2.4.8, JDK 1.3.1_04, Windows 2000, MS SQL Server 2000. Profiling degrades performance by a factor of 50. I'm working with Sitraka to troubleshoot the problem(s), but I wanted to ask my fellow JBoss users:

      - What degree of performance degradation have you experienced while using a profiling tool?

      - Do you have any JProbe-specific advice that Sitraka may not be able to offer?

      - I've seen OptimizeIt in some posts to this forum. Do you prefer/recommend it to JProbe?

      Thanks for your time,
      Craig

        • 1. Re: Profiling with JProbe degrades performance by 50x
          cepage

          I experienced significant slowdown running JBoss under both JProbe and OptimizeIt (JBoss 3.0.3, JDK 1.3.1_04, Win2K). Server startup was 10-15 times slower than normal.

          I found JProbe to be much better than OptimizeIt for profiling JBoss. OptimizeIt kept crashing because it wanted to use a gig of memory over an above my 512M application heap.

          • 2. Re: Profiling with JProbe degrades performance by 50x
            perfguy

            hi corby,
            i guess it should take some time to start it...cos it depends up on the options that u have selected in the tools menu..

            for example if u want to deal with cpu profiler then u can switch off the memory profiler.... by doing so u r startup time gets decreases...

            **I found JProbe to be much better than OptimizeIt for profiling JBoss**

            what are the criteria?

            perfGuy

            • 3. Re: Profiling with JProbe degrades performance by 50x
              draftdog

              I don't know the exact factor, but on my machine JBoss is something like 30+ times slower when profiling using JProbe... pretty easy to detect the bottleneck ;-) anyway, I guess it's "normal" considering the GUI, all lines are outputted to the console, the graphs that are being drawn consume some processing power too I assume...

              I very much doubt it is possible to get quasi normal running/startup speeds while running a complex Java profiler, even while toggling some features off. If I am mistaken I am interested in knowing what to do in order to get things running smoothly.

              nevertheless, I did not use it exhaustively but JProbe seems quite a professional tool to me...

              cheers
              Wouter

              • 4. Re: Profiling with JProbe degrades performance by 50x
                cepage

                My experience with JProbe was using only the Memory profiler, not tracking garbage collected objects, and tracing constructor invocations 4 levels deep. All in all, not a terribly intensive configuration.

                JProbe stayed up longer than OptimizeIt, but ended up being just as useless. I ran the JBoss server with a maximum heap size of up to 1 Gig, on a box with 4 Gigs of memory. After a few hours of normal operation running under JProbe (which corresponds to maybe 20 minutes of normal operation outside of JProbe), I would try to take a heap snapshot and it always crashed for lack of memory, even though JBoss reported it was only using ~256M of heap memory.

                The only way I was able to get any use out of JProbe was with very small, narrowly defined use cases. In other words, I had to do most of my work outside of JProbe to determine where memory issues were occuring, and then brought JProbe in to finish off the last 10% of analysis.

                Corby

                • 5. Re: Profiling with JProbe degrades performance by 50x
                  ssilvert

                  For the past three weeks I've been using OptimizeIt to analyze performance characteristics of our app under JBoss. OptimizeIt does slow things down a bit, but my gut feel is that it is 2x at most.

                  If you are not doing this already, run the swing portion of the profiler on another box and monitor remotely (license required). In several years of using OptimizeIT, I've found remote monitoring helps more than anything.

                  When I can, I run with the memory profiler off. That helps performance quite a bit. But, even with the memory profiler on, it is still quite useable and useful.

                  One thing I can say is that JBoss seems to be much happier with OptimizeIT than Weblogic was. When I was going through the same excercise on Weblogic about a year ago I was running into all kinds of problems.