Hy,
Thanks for your great interrest. Sorry for the delay, but i had a lot of work the last days.
The chosen strategie was to save the
UIViewRoot as a "template" of the JSP's after executing the first time on the server.
Before the UIViewRoot gets serialized for statesaving, we will diff the saved "template" UIViewRoot and the
current UIViewRoot and save only the components which have different component states. The other components
are marked to be the same like in the template. In the restoreview Phase these marked components were taken
from the "template" and a whole UIViewRoot is restored.
As a secound aspect the strings for the component classes are hold at the server and only id's are saved, which also saves about 5-10% of the savestate.
I hope that helps.
regards
Martin Haimberger
On 9/17/06, Adam Winer <[EMAIL PROTECTED]> wrote:
Martin,
Hey, very cool! Have you written up anything describing (a)?
I'm very curious about the strategy chosen.
-- Adam
On 9/13/06, Martin Haimberger <[EMAIL PROTECTED]> wrote:
>
> Hy everyone,
>
> my name is Martin Haimberger and i took part in the GSoC 2006 with the
> Partial State Saving project for myfaces.
> The two mayor things to implement were
> a) Create an partial State Saving Tree
> b) Render the Tree without calling dispatch() and let the jsp render it
>
> I used the tomahowk simple examples to do first performancetests. I
> activated Clientside statesaving
> and compaired their length:
>
>
>
>
> displayValueOnly
>
>
>
> 11.450 org.savestate
>
> 6.060 partial.save.state
>
>
>
>
>
> Partial Savestate: 52,9%
>
>
>
>
>
> home.jsp
>
>
>
> 22.754 org.savestate
>
> 6.316 partial.save.state
>
>
>
> Partial Savestate: 27,7%
>
>
>
>
>
>
>
> masterDetail
>
>
>
> 13.870 org.savestate
>
> 10.300 partial.save.state
>
>
>
> Partial Savestate: 74,3%
>
>
>
>
>
>
>
> selectbox
>
>
>
> 15.310 org.savestate
>
> 10.808 partial.save.state
>
>
>
> Partial Savestate with ID Map: 70,6%
>
>
>
>
>
> selectonecountry
>
>
>
> 3.494 org.savestate
>
> 1.896 partial.save.state
>
>
>
>
>
> Partial Savestate: 54,3%
>
>
>
>
>
>
>
> tree2NiceWrap
>
>
>
> 9.902 org.savestate
>
> 6.464 partial.save.state
>
>
>
> Partial Savestate: 65,3%
>
>
>
>
>
>
>
> dynamiclists
>
>
>
> 5.998 org.savestate
>
> 4.760 partial.save.state
>
>
>
> Partial Savestate with ID Map: 79,3%
>
>
>
>
>
> The secound test was a speed test how fast the page gets rendered without
> dispatching to the jsp.
>
> The problem is that the response times of the same request fluctuate a lot
> if it is called a certain times. So measuring is very difficult.
>
> But what i can say is that it is (after the first request) about 20% faster
> than alway dispatching to the jsp who it was done till now.
>
>
>
> In the next weeks my Mentor, Martin Marinschek and I will adapt the code and
> commit it to the svn server.
>
>
>
> Regards
>
> Martin Haimberger
>
>
