Re: [java-gnome-hackers] Having benefited from YourKit...
Brought to you by:
afcowie
From: Vreixo F. L. <met...@ya...> - 2007-02-15 15:05:01
|
--- Andrew Cowie <an...@op...> escreveu: > YourKit LLC very kindly donates licences for its > Java profiling tool to > individual hackers within Open Source projects, > which is, as ever, a > very legitimate way of contributing to the FOSS > movement. > > YourKit was recommended to me by one of my clients, > and so about a year > ago I requested such a licence, and was kindly > granted one. I have > hardly used YourKit (early on it told me that trying > to fix java-gnome > 2.x was going to be impossible, but I already knew > that) ... but a > casual "hey, that could be interesting" run *very* > recently turned out > to be a great help. > > And then the other day I received a courtesy ping > from Vladimir > Kondratyev. You may be interested in my reply, which > I enclose below. > > AfC > Sydney > > > P.S. If any of the java-gnome 4.0 hackers are > interested in such a > licence, I would certainly be willing to vouch for > your contribution. > Character references are a confidential matter, so > contact me privately > if you would like such a referral. > > -------- Forwarded Message -------- > From: Andrew Cowie <an...@op...> > To: Vladimir Kondratyev <sa...@yo...> > Subject: Re: Request for an open-source project > licence for use with > java-gnome > Date: Thu, 15 Feb 2007 16:57:34 +1100 > > On Mon, 2007-02-12 at 18:53 +0300, sa...@yo... > wrote: > > Congratulations on releasing new Java bindings for > GNOME > > > http://research.operationaldynamics.com/blogs/andrew/software/java-gnome/java-gnome-4.0.2-release.html > > > Did YourKit Java Profiler help to find performance > problems or memory > > leaks? > > I was about to say "no", but then I thought about > it, and actually, the > answer was "yes"! > > So thank you! I owe you a blog post. :) > > Also, one day fairly soon I will be putting a > "supporters" page up on > the website, and you will most certainly have the > mention there you > originally requested. > > We don't have any large applications in java-gnome > 4.0 yet, so > performance impact analysis is still a bit > contrived. But the much to my > surprise, it was the memory allocation side of yjp > that helped us. > > About two weeks before 4.0.2 actually came out, we > were doing clean-ups > and and thinking we were ready to release. One of my > staff suddenly > realized that they were not seeing any debug > statements about the GValue > proxies freeing the memory that they had allocated. > > Ooops. > > So I ran yjp to see if I could figure out why. > YourKit ended up > reminding me that I had not gotten around to > implementing the memory > management algorithms. I knew that, of course, but > had (being honest) > forgotten about it with a "TODO later" comment. By > showing me a vast > quantity of these Value objects piling up and not > being garbage > collected, yjp showed where the strong references > were piling up, and > that made me realize it was high time to do the > TODO. So I did, and with > the enormous help of Vreixo Formoso Lopes, we have > implemented fully > compliant cross boundary memory and reference > handling in java-gnome 4.0 > > Some feedback: > > As is not unusual with profilers, the problem is > ever to swim past the > allocations of objects internal to the Java VM so > you can see things > that are "interesting". To be honest, it was only an > accident that I was > able to realize from yourkit that something was > wrong - most of the way > I was either battling signal to noise ratio or not > recognizing that the > data I was being shown actually *was* significant. > > I'm sure you know this already, but some way to > treat Java Collections > as a single entity would be really cool. And even > better, a default > configuration which automatically filtered stuff > like ClassLoader > loading classes and sun.* internal classes would be > nice - there is > nothing I can do about any of that, and so I'm not > really interested in > the time it takes or the objects it allocates. > > Finally, for completeness, I would observer that the > CPU side of YourKit > (the fun part!) hasn't been as useful, primarily > because it's hard to > see past the fact that 99% of time is spent in GTK's > main loop - we make > one call to a native method to start gtk_main(), and > that blocks, and as > far as YourKit is concerned, that's CPU usage. > > yjp is very good at showing top down analysis, but > in the case of our > event driven programming, where the code paths that > you want to look > into start with a JNI invocation of an arbitrary > method somewhere deep. > and then go back up from there, it can be difficult > to get to that > method to then start doing merged callees and > backtraces. I'm not sure > what to suggest in this case, but I imagine anyone > debugging an event > driven program that mixes Java and native C code and > where the events > originate from the native side has run into this. > > I realize feedback from a non-paying-customer isn't > top of the priority > list, but that's been my experience so far. YourKit > _did_ help out, and > so I thank you very much. > > AfC > Sydney > > > -- > Andrew Frederick Cowie > > Technology strategy, managing change, establishing > procedures, > and executing successful upgrades to mission > critical business > infrastructure. > > http://www.operationaldynamics.com/ > > Sydney New York Toronto London > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get > the chance to share your > opinions on IT & business topics through brief > surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> _______________________________________________ > java-gnome-hackers mailing list > jav...@li... > https://lists.sourceforge.net/lists/listinfo/java-gnome-hackers > __________________________________________________ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/ |