.Net Profiler? What about integrating profiling into IDEA?
It's great that you guys are releasing a profiler for .Net, but I have to think there's a market opportunity for a Java profiler tightly integrated with IDEA. I'm a satisfied JProfiler user and find it's interface very nice, but it seems like there could be huge wins in directly integrating profiling into an IDE. Here's some ideas I've been kicking around that stand-alone profilers are just too cumbersome for.
1) Rather than getting performance information for the entire application run (which is rarely what you want), allow individual methods to be marked for profiling, much like the debugger allows method breakpoints now. Current profilers either don't allow this, or allow only very crude versions of it, and as a result produce far more data that is actually desirable.
2) Prebuild sets of methods to get profiling information for. For instance, show performance information and traces for just JDBC calls, or just JSP tag invocations, or just EJB lifecycle calls. Borland OptimizeIt Request Analyzer component goes down this path.
3)Allow the user turn on profiling for methods based on annotations on those methods. The user annotate individual method calls as potentially expensive, and describe the resources used (CPU, heap, database, network, etc.), and toggle acquisition and display of profiling information to just those methods.
It's great that you guys are getting into to profiler business, and I hope you don't miss the chance to build something spectacular in IDEA.
--Dave Griffith
Please sign in to leave a comment.
Dave Griffith wrote:
I don't think create a new wheel is an intelligent idea...
If you know of a commercial product that does the things I listed, I'd love to hear about it (and purchase it, for that matter). None of the currently available Java profilers come close on issues 1) and 3), but they seem like things that would be easy in a tightly integrated IDEA profiler.
--Dave Griffith
I don't think there'll be an IntelliJ profiler, they probably don't want
to step on the toes of
http://www.yourkit.com/company/index.jsp
R
I agree such tight integration with the IDE would be very nice. Your
suggestions remind me of JFluid (now called NetBeans Profiler). I tried
that before it became integrated with NetBeans because of those
features. Unfortunately it was too unstable at that time and couldn't
handle my applications. I have been meaning to try it again but I
haven't had the time (and need) yet. Has anybody used it?
Also the YourKit company was started by 2 ex-Jetbrains employees
(Vladimir Kondratyev and Anton Katilin). I think they wouldn't be very
pleased if Jetbrains started to compete with them:-) Their profiler has
some nice features too.
Bas
Dave Griffith wrote:
+Also the YourKit company was started by 2 ex-Jetbrains employees
(Vladimir Kondratyev and Anton Katilin). I think they wouldn't be very
pleased if Jetbrains started to compete with them:-) Their profiler has
some nice features too.+
do I smell a buyout issues here ;)
M. J. Milicevic wrote:
>YourKit .. Their profiler has some nice features too.
>
Too bad it doesn't support MacOS X.
Alain
Alain Ravet wrote:
>>YourKit .. Their profiler has some nice features too.
>>
YourKit 4.0 will support MacOS X. I don't know if on the current YourKit
EAP MacOS X support is working already, but if not it should be soon.
Bas
Bas Leijdekkers wrote:
>
Thanks for the info. I didn't know about their EAP.
http://www.yourkit.com/eap/index.jsp
I'll look into it.
Alain
In article <ctb5ul$kim$1@is.intellij.net>,
Alain Ravet <alain.ravet@biz.tiscali.be> wrote:
Yup same here, not sure what changed in 4.0, but I was told that the Mac
OS X JVM did not have good support for their profiling engine and they
could not do it until Apple got their butts in gear. Wonder what got
YouKit's butt in gear to figure out that others do it, and they should
as well.
Thanks for the link, will go look at it.
R
Bas
I've just installed it, and it seems to work: the 2 icons show up in the
toolbar, when I click, it runs my tests, but..
How do I use it? How can I visualize the profiling results?
When I launch my tests, they run for 2 seconds, and all I see in the
console is 4 lines :
/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/bin/java
-Xrunyjpagent:sessionname=YJPQUOTED416c6c20746573747320286c61756e636865642066726f6d204944454129
-Dfile.encoding=MacRoman -classpath.. -ideVersion5 @/tmp/idea_junit5725.tmp
Using JVMPI
Listening on port 56130...
21 test classes found in package "com.ravet"
Alain
In article <ctbdq9$vnv$1@is.intellij.net>,
Alain Ravet <alain.ravet@biz.tiscali.be> wrote:
Something tells me 2 seconds is too short to get a full profile, you
might want to repeat the tests in a loop? Dunno I could be way off here.
R
Alain Ravet wrote:
For short-lived applications you need to tell YourKit to start with profiling
just after the JVM starts up and to take a snapshot before it exits. You find
those options in your run-configurations under the "Startup/Connection" tab.
Sascha
Sascha Weinreuter wrote:
I guess I spoke too soon. The "Startup/Connection" tab doesn't appear in
Irida builds. I wonder whose fault that is...
You can add some sleep()s before and after your code and trigger the profiling
and snapshot creating manually from within YourKit. There's also a way how to
manually add the required options to the JVM params. It's somewhere in the manual.
Sascha
Sascha Weinreuter wrote:
>
Found it:
-Xrunyjpagent:onexit=both,tracing,alloc
It's a little buggy in Irida though, and I couldn't do much.
Alain
I use YourKit currently and think it's great, however as of 4.0 there is no longer a personal license option (which is how I purchase all my development products) so that will make things interesting to see if I continue to use it. For the time-being I'm just continuing with the 4.0 EAP until it ends and then I'll probably have to switch back to 3.2.
The only thing I don't like about YourKit is that the UI does not form part of the IDE. I love what NetBeans have done with JFluid and the guys have done with Clover and would love to see YourKit (or another profiler) implemented in IDEA the same way.