Re: Good, free profiling?
"Malcolm Edgar" <[email protected]> Thu, 02 Jan 2003 13:34:51 +0800
| Newsgroups | gmane.comp.java.tapestry.contrib |
|---|---|
| Message-ID | <[email protected]> |
Hi Howard, I don't know of any free profiling tool. I have found JProbe is a great tool. I think someone once said we should pool some dollars to buy this for you/Tapestry, I can kick in some Aussie dollars (for what they are worth). Do you have any thoughts on whether the Global object should be included in 2.3 or 2.4? regards Malcolm >From: "Howard M. Lewis Ship" <[email protected]> >To: "Tapestry Contrib" <tapestry-contrib-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org> >Subject: [Tapestry-contrib] Good, free profiling? >Date: Wed, 1 Jan 2003 23:03:24 -0500 > >Is there a good, free (and/or open source) profiling tool? > >Tapestry 2.4 performance may be slipping a little; I can't tell because I >don't have access to any profiling tools. Luis Neves has previously >commented that the bottleneck he observes is in character-to-byte >conversions, deep inside java.io. I'm now concerned that all the cool 2.4 >features such as dynamic page and component discovery are also eating up >too >many cycles (especially when a page is first loaded). Also, I'm getting >concerned about inneficient threading, since there are more chunks of >Tapestry that must be synchronized. > >The new page persistance stuff is working well, though its a bit more picky >about what types of objects are allowed as persitent properties. Each >persistant page property is now stored individually in the HttpSession. >The >engine now only stores a list of pages with persistent properties. > >The basic types, such as String, Number, Boolean work fine. It >differentiates between mutable and immutable objects. Immutable objects >are >String, Number, Boolean, java.util.Date (which is slightly fudging), Enum >and anything marked as IImmutable (a new marker interface for immutable >objects). > >Mutable objects are tougher since the persistance wants to keep an isolated >copy of properties. That is, fireObservedChange() results in a copy being >made, and when a page is rolled back in a later request cycle, a copy (of >the copy) is made. > >It's less efficient, but it means no surprises, especially in a clustered >environment. It forces the user to be careful about setting values, you >must follow a get/modify/set pattern, no fudging. It's also going to help >with some timing issues that occur when multiple requests against the same >engine run concurrently ... triggered by frames, but also by private >assets. > >The problem is handling the copying of values. At best, its going to do a >shallow copy. As a last resort, Serializable objects are serialized and >deserialzed (to make a deep copy). > >Individual classes or interfaces need their own handler (IValueCopier) >registered with a IValuePersister. The good news is this provides a clean >way to handle things like EJBObject (which is now converted to an >EJBObjectWrapper, which implements Serializable to read and write the >object's handle). > >However, for mutable objects like List, a specific handler must be created, >i.e.: > >public class ListCopier implements IValueCopier >{ > public Object makeCopyOfValue(Object value) > { > List list = (List)value; > return new ArrayList(list); > } >} > >I think this is the right course to pursue, but I'm concerned that the >framework will get finicky. > >Status: 22,440 NCLOC, 70.5% coverage > >---- >Howard Lewis Ship >[email protected] >http://tapestry.sf.net > > > >------------------------------------------------------- >This sf.net email is sponsored by:ThinkGeek >Welcome to geek heaven. >http://thinkgeek.com/sf >_______________________________________________ >Tapestry-contrib mailing list >Tapestry-contrib-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org >https://lists.sourceforge.net/lists/listinfo/tapestry-contrib _________________________________________________________________ The new MSN 8: smart spam protection and 2 months FREE* http://join.msn.com/?page=features/junkmail ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf