Re: Good, free profiling?
"Howard M. Lewis Ship" <[email protected]> Thu, 2 Jan 2003 06:45:45 -0500
| Newsgroups | gmane.comp.java.tapestry.contrib |
|---|---|
| Message-ID | <009901c2b254$7ca23f40$3dc41e42@howardczkz2sl3> |
> Do you have any thoughts on whether the Global object should be included in > 2.3 or 2.4? 2.4 2.4 is not that far off, given the head start we have on it. I'd rather we put 2.3 to bed as soon as possible. > > 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