Return-Path: Delivered-To: apmail-myfaces-commits-archive@www.apache.org Received: (qmail 38650 invoked from network); 6 Apr 2010 08:45:38 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 6 Apr 2010 08:45:38 -0000 Received: (qmail 62248 invoked by uid 500); 6 Apr 2010 08:45:38 -0000 Delivered-To: apmail-myfaces-commits-archive@myfaces.apache.org Received: (qmail 62165 invoked by uid 500); 6 Apr 2010 08:45:37 -0000 Mailing-List: contact commits-help@myfaces.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "MyFaces Development" Delivered-To: mailing list commits@myfaces.apache.org Received: (qmail 62158 invoked by uid 99); 6 Apr 2010 08:45:37 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Apr 2010 08:45:37 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.130] (HELO eos.apache.org) (140.211.11.130) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Apr 2010 08:45:31 +0000 Received: from eos.apache.org (localhost [127.0.0.1]) by eos.apache.org (Postfix) with ESMTP id 7DFE117D1B for ; Tue, 6 Apr 2010 08:45:09 +0000 (GMT) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Apache Wiki To: Apache Wiki Date: Tue, 06 Apr 2010 08:45:09 -0000 Message-ID: <20100406084509.25703.66333@eos.apache.org> Subject: =?utf-8?q?=5BMyfaces_Wiki=5D_Update_of_=22GSoC2010=5FStateSavingPerforman?= =?utf-8?q?ceImprovements=22_by_Marius_Petoi?= X-Virus-Checked: Checked by ClamAV on apache.org Dear Wiki user, You have subscribed to a wiki page or wiki category on "Myfaces Wiki" for c= hange notification. The "GSoC2010_StateSavingPerformanceImprovements" page has been changed by = Marius Petoi. http://wiki.apache.org/myfaces/GSoC2010_StateSavingPerformanceImprovements?= action=3Ddiff&rev1=3D6&rev2=3D7 -------------------------------------------------- = =3D=3D Description =3D=3D = - In JSF 2.0 there is the possibility to partially save the state of the pa= ge in the ExternalContext. This means that at the first request the entire = state is saved, but afterwards only the differences from this are saved. My= Faces2 introduces the =E2=80=9CState''''''Management''''''Strategy=E2=80=9D= , which is an interface for strategies used for saving and respectively loa= ding the view. The default MyFaces strategy implemented so far, upon saving= the view checks whether there has been a previously saved view. If so, it = saves just the differences between the old state and the new, actual state.= If not, the entire state is saved in the external context request map. + In JSF 2.0 there is the possibility to partially save the state of the pa= ge in the External''''''Context. This means that at the first request the e= ntire state is saved, but afterwards only the differences from this are sav= ed. MyFaces2 introduces the =E2=80=9CState''''''Management''''''Strategy=E2= =80=9D, which is an interface for strategies used for saving and respective= ly loading the view. The default MyFaces strategy implemented so far, upon = saving the view checks whether there has been a previously saved view. If s= o, it saves just the differences between the old state and the new, actual = state. If not, the entire state is saved in the external context request ma= p. At the moment, the saved state contains the component tree together with = properties for each component (a list of its children and facets, together = with the list of listeners, the behaviours map, etc). Every component is re= sponsible for creating its own =E2=80=9Cstate=E2=80=9D object, which is aft= erwards included in the parent=E2=80=99s state object. In the end, the =E2= =80=9Cstate=E2=80=9D of the UI''''''View''''''Root and the tree of componen= ts is saved in the External''''''Context. Upon restore, the UI''''''View''''''Root is constructed using the informa= tion stored in the External''''''Context. This project is intended to take a deeper look into what exactly is saved= at the moment. The saved state should be analyzed and see whether anything= can be skipped. For this, memory profiling should be done and see which pa= rt of the saved state occupies the most memory. Afterwards, we should see h= ow much of this is really used and what can be dismissed.