|
From: Rod J. <rod...@in...> - 2003-12-08 10:12:03
|
The Java 1.4 version, using Throwable.getStackTrace(), is a bit over twice as fast as the all-versions code based on parsing the results of printStackTrace(). It's probably a lot more memory efficient as well. This begs the question of how we can have both a 1.4 and 1.3 version--any thoughts on this? The 1.3 version is still fast enough to be viable for typical usage, so I don't think we can consider this a 1.4-only feature. Regards, Rod ----- Original Message ----- From: "Rod Johnson" <rod...@in...> To: <spr...@li...> Sent: Sunday, December 07, 2003 2:34 PM Subject: Re: [Springframework-developer] Re: Cflow > Chris > > At present it parses the stack trace itself, so it works in any version. > However, the StaceTraceElement stuff from 1.4 may run faster: I'll do a > benchmark shortly. > > If it does run _much_ faster, we might have to consider having different > versions of that class for each JDK. I guess this is a broader issue > though--I don't think we want two binary distributions for 1.0. > > Overall, Spring doesn't require 1.4 and we have plenty of users on 1.3. > > Regards, > Rod > > ----- Original Message ----- > From: "Chris Nokleberg" <ch...@si...> > To: <spr...@li...> > Sent: Sunday, December 07, 2003 10:51 AM > Subject: [Springframework-developer] Re: Cflow > > > > Rod Johnson wrote: > > > I've just checked in a simple "cflow"-style method matcher pointcut, > that > > > enables us to apply simple conditions such as "this call came from > > > com.my.web.MyController class", or perhaps a particular method of such a > > > class. > > > > > > It's 10-15 times slower to evaluate such a pointcut than a "normal" > method > > > matcher, because it's necessary to construct a new Throwable to analyse > > > the stack trace (unless someone has a better idea!). > > > > There might be a better way if you restrict the cflow matching against > > classes you can proxy. For example, you could add an around advice to > every > > method in com.my.web.MyController. The advice would increment a > threadlocal > > before and decrement it after. To check if you're within the cflow you > just > > see if the threadlocal value is greater than zero. This is probably more > > portable too since getStackTrace is 1.4 only (don't know if Spring > requires > > 1.4), but then again ThreadLocals are pretty slow on anything below 1.4. > > > > Chris > > > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: IBM Linux Tutorials. > > Become an expert in LINUX or just sharpen your skills. Sign up for IBM's > > Free Linux Tutorials. Learn everything from the bash shell to sys admin. > > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click > > _______________________________________________ > > Springframework-developer mailing list > > Spr...@li... > > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: IBM Linux Tutorials. > Become an expert in LINUX or just sharpen your skills. Sign up for IBM's > Free Linux Tutorials. Learn everything from the bash shell to sys admin. > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > |