Speaking of performance, my pages are using quite a bunch of technologies and session size varies ~30-40 KB, sometimes it raises to 80-90 KB. Is that a considerable amount?
Previously I've been working with JSF where session size was 2-6 MB - so comparing to that it seems to be "almost zero" :) But is this "normal" amount for wicket pages? Thank you Žilvinas Vilutis Mobile: (+370) 652 38353 E-mail: [email protected] On Sun, May 16, 2010 at 9:13 PM, Jeremy Thomerson <[email protected] > wrote: > In general, you should not pass references to components to other pages. > That section on anonymous inner classes is telling you that when you > create > an anonymous inner class and pass it to another page, you > will inadvertently be passing a reference to the outer class, which is > typically a page. This builds up memory and you will get a OOM. Passing > models between pages is absolutely fine - as long as you're not > accidentally > passing a bunch of other stuff with it (including large domain objects - > which should be detached by using a detachable model). The page linked to > even says that you will often pass models between pages. > > -- > Jeremy Thomerson > http://www.wickettraining.com > > > > On Sun, May 16, 2010 at 11:05 PM, Rik van der Kleij <[email protected] > >wrote: > > > Hi Bernard and Mike, > > > > According to > > > https://cwiki.apache.org/WICKET/best-practices-and-gotchas.html#BestPracticesandGotchas-AnonymousInnerclassessharingmodels > could eventually lead to Out of memory error. > > > > Holding a page reference in an instance field that points to another page > > looks the same but it is doesn't seems to be a problem. What's the > > difference? > > > > Regards, > > Rik > > > > > > On 16 mei 2010, at 04:39, Michael O'Cleirigh wrote: > > > > > Hello, > > > > > > I'm not sure on the answer to your question about the anonymous inner > > class but in general sharing models between pages can be a bad idea. > > > > > > The memory issues comes into play if the IModel is like Model and the > > contained object is not transient (it is serialized as part of the page). > > > > > > While Pages are serialized each page is serialized independently so on > > page reload the IModel from the first page is no longer the same object > > instance as the IModel from the second page. At deserialization time the > > page1.model.getObject().equals page2.model.getObject() but > > page1.model.getObject() != page2.model.getObject(); so any changes to > either > > model are not shared between then. > > > > > > This is not a problem if the model is loadable since the memory of the > > page it is contained in doesn't matter as the value is loaded from the > > backend db or some other independent data source like the httpsession, or > > with wicketApplication. > > > > > > You can see the same effect if you try and share a model between a > panel > > and a ModelWindow that uses a PageCreator > > > > > > Hope this helps, > > > > > > Mike > > >> Hi, > > >> > > >> Can someone explain me why it is a memory issue when an instance of an > > anonymous IModel class is passed to another page to be shared, but it > seems > > to be no problem when a page reference is passed to another page and is > put > > in an instance field (for example to be used in a button to navigate back > to > > previous page)? > > >> > > >> Many thanks. > > >> > > >> Regards, > > >> Rik > > >> > > >> > > >> > > >> --------------------------------------------------------------------- > > >> To unsubscribe, e-mail: [email protected] > > >> For additional commands, e-mail: [email protected] > > >> > > >> > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [email protected] > > > For additional commands, e-mail: [email protected] > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > >
