RE: Strange Action Behaviour (Infinite Loop?) - Potentially Navigation Problem, Still need help!

2006-07-09 Thread Daniel Murley
Hi All,

Still havn't resolved the issue below, but have discovered something
interesting about it.

The button (which sits in a tile) navigates to another page which displays a
set of search results. When you click on this button again, and it attempts
to navigate again, it falls into the loop below.  However if the button
returns no navigation instruction, the loop doesn't occur.

Can anyone shed any light on this?  Is it possibly a tiles + jsf problem, or
just a JSF navigation problem?

Thanks,

Daniel

-Original Message-
From: Daniel Murley [mailto:[EMAIL PROTECTED] 
Sent: Saturday, 8 July 2006 9:06 PM
To: 'MyFaces Discussion'
Subject: Strange Action Behaviour (Infinite Loop?)

Hi All,

I have a form with a dynamically created panelGrid on it.  This panelGrid
also contains many other panel grids along with a command button.  The
nested panelGrids are rotated in and out as requested by the user.

However I'm experiencing a problem that when the user hits the commandButton
the first time - everything is fine.  The second time, the action is fired
over and over until MyFaces proceeds to throw a stackoverflow exception.

Exception:

2006-07-08 20:49:47,939 ERROR
[org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/APP].[Face
s Servlet]] Servlet.service() for servlet Faces Servlet threw exception
java.lang.StackOverflowError
at
org.apache.catalina.connector.Request.getSession(Request.java:2017)
at
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:82
2)
at
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWr
apper.java:215)
at
org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRe
quest.java:544)
at
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWr
apper.java:215)
at
org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRe
quest.java:544)
at
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWr
apper.java:215)
at
org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRe
quest.java:544)
at
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWr
apper.java:215)
at
org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRe
quest.java:544)
at
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWr
apper.java:215)
at
org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRe
quest.java:544) 

Which repeats until:

at
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWr
apper.java:215)
at
org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRe
quest.java:544)
at
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWr
apper.java:215)
at
org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRe
quest.java:544)
at
org.apache.myfaces.context.servlet.SessionMap.getSession(SessionMap.java:72)
at
org.apache.myfaces.context.servlet.SessionMap.getAttribute(SessionMap.java:4
3)
at
org.apache.myfaces.context.servlet.AbstractAttributeMap.get(AbstractAttribut
eMap.java:87)
at
org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverI
mpl.java:278)
at
org.springframework.web.jsf.DelegatingVariableResolver.resolveVariable(Deleg
atingVariableResolver.java:108)
at
org.springframework.web.jsf.DelegatingVariableResolver.resolveVariable(Deleg
atingVariableResolver.java:108)
at
org.apache.myfaces.config.LastVariableResolverInChain.resolveVariable(LastVa
riableResolverInChain.java:42)
at
org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(Va
lueBindingImpl.java:574)
at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
at
org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
at
org.apache.commons.el.BinaryOperatorExpression.evaluate(BinaryOperatorExpres
sion.java:154)
at
org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
at
javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1076)
at
javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:59
8)
at
javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:60
2)
at
javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:60
2)
at
javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:60
2)
at
javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:135)
at
org.apache.myfaces.lifecycle.LifecycleImpl.applyRequestValues(LifecycleImpl.
java:219)
at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:71)
at 

RE: JSF Performance Problems

2006-07-09 Thread Yee CN








Is the result with Myfaces/JSP? Can
somebody provide performance comparison with Myfaces/Facelets?



JSF is still a new technology, and there
are still plenty of rooms for improvements. Furthermore the performance
differential wont be as drastic once we factor in business logic, persistence,
AJAX etc.



IMHO reduce development time is still the
most important factor to consider.



Regards,

Yee











From: jfaronson
[mailto:[EMAIL PROTECTED] 
Sent: Sunday, July 09, 2006 8:11
AM
To: users@myfaces.apache.org
Subject: JSF Performance Problems





I grabbed the attachments from the original performance bug
https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=3 and ran some
JMeter tests against the JSP only and the JSF versions. The pages
are really simple, the JSP version outputs a page which is visually identical
to the JSF page. The table in question had 10 columns and 50 - 200 rows. Not a huge
amount of data. I used MyFaces 1.1.3 as the JSF implementation and ran the test
in JBoss 4.0.4 GA running on JDK 1.4.2. Here's the results: 

 Table Rows Average [ms] Median [ms] Hits / Min SamplesJSF Testcase 50 36 30 1300 5007JSP Testcase 50 14 10 4030 5001JSF Testcase 100 56 60 1050 5001JSP Testcase 100 21 20 2700 5001JSF Testcase 200 100 100 590 5001JSP Testcase 200 26 30 2170 5001

This data confirms the discussion in the sun forum. The JSF version
started out nearly three times slower than the JSP page. The relative
performance of the JSF version degraded to nearly four times slower as table
rows were added. So if you are thinking about adopting JSF you should be aware
of the performance hit and make sure that you can architect around the problem
or get the performance benchmarks adjusted. Perceived performance is important
in real life projects so it's more than a theoretical problem. I'd also like to
know if anybody has ideas or code samples that make JSF perform better? 







View this message in context: JSF
Performance Problems
Sent from the MyFaces
- Users forum at Nabble.com.








Large trees

2006-07-09 Thread O K
I am working at a project that require very large trees.   Which alternative to tree2 are avaible at the moment?  And will tree2 support AJAX in the future?  

panelNavigation2

2006-07-09 Thread Garner Shawn

I found the problem.

navigationMenuItems does NOT work when embedded inside another
navigationMenuItem tag

It does however work if it is only inside the panelNavigation2 tag.

Doesn't this menu system support embedded menu items?
If it is suppose to support it then can somebody report this as a bug?

Shawn


Re: Large trees

2006-07-09 Thread Andrew Robinson

Have a look at the WIKI:
http://wiki.apache.org/myfaces/Tree2

Tree2 doesn't support AJAX at the moment, but there has been some
discussion for the future.

On 7/9/06, O K [EMAIL PROTECTED] wrote:

I am working at a project that require very large trees.
 Which alternative to tree2 are avaible at the moment?
 And will tree2 support AJAX in the future?



Re: JSF Performance Problems

2006-07-09 Thread Matthias Wessendorf

Faclets gives you +10 - 15% more

On 7/9/06, Yee CN [EMAIL PROTECTED] wrote:





Is the result with Myfaces/JSP?  Can somebody provide performance comparison
with Myfaces/Facelets?



JSF is still a new technology, and there are still plenty of rooms for
improvements. Furthermore the performance differential won't be as drastic
once we factor in business logic, persistence, AJAX etc.



IMHO reduce development time is still the most important factor to consider.



Regards,

Yee



 


From: jfaronson [mailto:[EMAIL PROTECTED]
 Sent: Sunday, July 09, 2006 8:11 AM

 To: users@myfaces.apache.org
 Subject: JSF Performance Problems







I grabbed the attachments from the original performance bug
https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=3
and ran some JMeter tests against the JSP only and the JSF versions. The
pages are really simple, the JSP version outputs a page which is visually
identical to the JSF page. The table in question had 10 columns and 50 - 200
rows. Not a huge amount of data. I used MyFaces 1.1.3 as the JSF
implementation and ran the test in JBoss 4.0.4 GA running on JDK 1.4.2.
Here's the results:

   Table Rows   Average [ms]  Median [ms]   Hits / Min   Samples
JSF Testcase50   36301300 5007
JSP Testcase50   14104030 5001
JSF Testcase100  56601050 5001
JSP Testcase100  21202700 5001
JSF Testcase200  100   100   590  5001
JSP Testcase200  26302170 5001


This data confirms the discussion in the sun forum. The JSF version started
out nearly three times slower than the JSP page. The relative performance of
the JSF version degraded to nearly four times slower as table rows were
added. So if you are thinking about adopting JSF you should be aware of the
performance hit and make sure that you can architect around the problem or
get the performance benchmarks adjusted. Perceived performance is important
in real life projects so it's more than a theoretical problem. I'd also like
to know if anybody has ideas or code samples that make JSF perform better?
 


View this message in context: JSF Performance Problems
 Sent from the MyFaces - Users forum at Nabble.com.




--
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com


Re: Currrent Best Available Version of MyFaces

2006-07-09 Thread Mike Kienenberger

On 7/8/06, iSquareOne LLC [EMAIL PROTECTED] wrote:

 Another thing is we experienced problem with f:inputDate
f:inputCalendar, and eventually we gave that up and use inputText instead.
Is there any improvement on these two tags?


inputCalendar bugs were fixed right after the 1.1.1 release, so
upgrading should solve those problems.


Re: Currrent Best Available Version of MyFaces

2006-07-09 Thread Matthias Wessendorf

but myfaces core 1.1.3 has a blocker bug, so not really usable.

-Matt

On 7/9/06, Mike Kienenberger [EMAIL PROTECTED] wrote:

On 7/8/06, iSquareOne LLC [EMAIL PROTECTED] wrote:
  Another thing is we experienced problem with f:inputDate
 f:inputCalendar, and eventually we gave that up and use inputText instead.
 Is there any improvement on these two tags?

inputCalendar bugs were fixed right after the 1.1.1 release, so
upgrading should solve those problems.




--
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com


panelnavigation2 stylesheet not working in form?

2006-07-09 Thread ldr

When panelNavition2 is inside a form the stylesheet doesnt work? do anyone
know a workaround for this problem?

thanks in advance, ldr_
-- 
View this message in context: 
http://www.nabble.com/panelnavigation2-stylesheet-not-working-in-form--tf1915469.html#a5243964
Sent from the MyFaces - Users forum at Nabble.com.



Re: Style not getting reflected.

2006-07-09 Thread ldr

I have the same problem, when the panelnavigation2 is inside a form... did u
find a solution?


/ldr_
-- 
View this message in context: 
http://www.nabble.com/Style-not-getting-reflected.-tf1029954.html#a5244045
Sent from the MyFaces - Users forum at Nabble.com.



Re: Currrent Best Available Version of MyFaces

2006-07-09 Thread Matthias Wessendorf

Well dude,

we just posted a RC for myfaces core

[1] http://people.apache.org/~matzew/myfaces/core/
you may take a look, because MyFaces 1.1.3 is not usable (IMO)

-Matt

On 7/9/06, Matthias Wessendorf [EMAIL PROTECTED] wrote:

but myfaces core 1.1.3 has a blocker bug, so not really usable.

-Matt

On 7/9/06, Mike Kienenberger [EMAIL PROTECTED] wrote:
 On 7/8/06, iSquareOne LLC [EMAIL PROTECTED] wrote:
   Another thing is we experienced problem with f:inputDate
  f:inputCalendar, and eventually we gave that up and use inputText instead.
  Is there any improvement on these two tags?

 inputCalendar bugs were fixed right after the 1.1.1 release, so
 upgrading should solve those problems.



--
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com




--
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com


RE: Tomahawk: Tree2: TreeNodeBase.getChildCount() question - Lazy Loading issue.

2006-07-09 Thread Todd Patrick
In your example, you have the FolderNode as an inner class, does it have
to be?

Couldn't I have the following separate class files:

FolderNode
FileNode
BaseTreeNode

In Step 2: create the directory node (inner class) - isn't this the same
as the FolderNode example at the bottom of your blog, except it is
specific to your application?

Thanks,

--Todd 

-Original Message-
From: Andrew Robinson [mailto:[EMAIL PROTECTED] 
Sent: Friday, July 07, 2006 4:17 PM
To: MyFaces Discussion
Subject: Re: Tomahawk: Tree2: TreeNodeBase.getChildCount() question -
Lazy Loading issue.

The magic of my code is just the fact that the base node reports 1
for the child count *only if* the node has not loaded the children yet
and the node is not expanded. That is the big gotcha. If you are not
using TreeModelBase or the default TreeState that it comes with that
base tree node from my blog will not work. My code is also using 1.1.2
but I don't think that should matter.

Your repeated A is because you reported a node count of 1, but
returned more or less nodes than 1 as children (that is why I had to add
the expanded code to my node).

What problems were you having with my code? I can try to help that way,
or if it doesn't seem to be working out, I can try during my free time
to build an example ZIP for you with source that does the lazy loading.

Were you getting errors, or was the tree just not working?

BTW - I am using TreeModelBase and not changing the expansion state of
the model (no overrides or customizations).

-Andrew

On 7/7/06, Todd Patrick [EMAIL PROTECTED] wrote:
 I have been unsuccessful in implementing the Lazy Loading technique 
 that was described in the wiki or as described using AjaxAnywhere by 
 Andrew R.

 By all means, this is my own fault and no one else, I greatly 
 appreciate everyone's help!

 Therefore, I am at this point: I really just need the plus sign
 navigation displayed for every node, no matter if the node has a child

 or not.

 A user that clicks on the plus sign will run a server ActionEvent 
 that will get the children for that node.

 If there is no children, do nothing.

 I went back and studied the following comment on Andrew R. blog: The
 tree2 renderer looks only at the getChildCount method, not the 
 getChildren method when rendering. Meaning that if getChildCount 
 should return 0, getChildren will never be called unless the node is
expanded.

 Ok, good... now I should just be able to override the getChildCount 
 method if I extend the TreeNodeBase class, such as:

 public int getChildCount() {
 return 1;
 }

 So, in combination with the wiki example Alternative Tree2 Lazy 
 Loading Method...by jtmille3:

 public class LazyTreeNode extends TreeNodeBase {

 private static final long serialVersionUID = 
 -6870203633601493362L;

 public LazyTreeNode() {
 }

 public LazyTreeNode(String type, String description, boolean
 leaf) {
 super(type, description, leaf);
 }

 public LazyTreeNode(String type, String description, String 
 identifier, boolean leaf) {
 super(type, description, identifier, leaf);
 }

   public int getChildCount() {
   return 1;
   }

 public List getChildren() {
  // if there are no children, try and retrieve them
 if (super.getChildren().size() == 0) {
  super.getChildren().add(new 
 LazyTreeNode(document, + id,  + id,false));
 }

 return super.getChildren();
 }
 }

 This doesn't work. What I end up with is the parent value repeated 
 such
 as:

 - A
 |_ A
 |_ A
 |_ A

 Instead, I should have:

 - A
 |_ B
 |_ C
 |_ D

 The way I build my tree children is in a *for* loop in the following
 method:

  public void getTreeTransactBranch(String _transactID, TreeNode
 _transactNode) throws NamingException{
 InitialContext ctx = new InitialContext();
 DataSource ds = (javax.sql.DataSource) 
 ctx.lookup(jdbc/__Pool);
 Connection con;
 List TransactRow treeBranch = new LinkedList();

 try {
 con = ds.getConnection();
 try {
 TransactRow tree = new TransactRow();
 treeBranch = tree.selectByParentID(con, _transactID);

 for (TransactRow row : treeBranch) {

childTransactLeafLabel.append(row.getXactTypeID());
 childTransactLeafLabel.append(spacer);
 childTransactLeafLabel.append(row.getName());
 childTransactLeafLabel.append(spacer);

 childTransactLeafLabel.append(this.getDuration(row.getTCreated()));
 _transactNode.getChildren().add(new
 LazyTreeNode(transactions, childTransactLeafLabel.toString(),
 row.getTransactID(), false));
 childTransactLeafLabel.delete(0, 
 childTransactLeafLabel.length());
 }

 } catch 

Re: Tomahawk: Tree2: TreeNodeBase.getChildCount() question - Lazy Loading issue.

2006-07-09 Thread Andrew Robinson

There is no reason to have to create the node as an inner class. I did
it for speed sake as I was extremely short on time at work. The outer
class had the model, and method to load the children nodes, so it was
the most expedient place to put it. If you don't have it as and inner
class you would just need to refer to an external source to load the
unloaded nodes.

On 7/9/06, Todd Patrick [EMAIL PROTECTED] wrote:

In your example, you have the FolderNode as an inner class, does it have
to be?

Couldn't I have the following separate class files:

FolderNode
FileNode
BaseTreeNode

In Step 2: create the directory node (inner class) - isn't this the same
as the FolderNode example at the bottom of your blog, except it is
specific to your application?

Thanks,

--Todd

-Original Message-
From: Andrew Robinson [mailto:[EMAIL PROTECTED]
Sent: Friday, July 07, 2006 4:17 PM
To: MyFaces Discussion
Subject: Re: Tomahawk: Tree2: TreeNodeBase.getChildCount() question -
Lazy Loading issue.

The magic of my code is just the fact that the base node reports 1
for the child count *only if* the node has not loaded the children yet
and the node is not expanded. That is the big gotcha. If you are not
using TreeModelBase or the default TreeState that it comes with that
base tree node from my blog will not work. My code is also using 1.1.2
but I don't think that should matter.

Your repeated A is because you reported a node count of 1, but
returned more or less nodes than 1 as children (that is why I had to add
the expanded code to my node).

What problems were you having with my code? I can try to help that way,
or if it doesn't seem to be working out, I can try during my free time
to build an example ZIP for you with source that does the lazy loading.

Were you getting errors, or was the tree just not working?

BTW - I am using TreeModelBase and not changing the expansion state of
the model (no overrides or customizations).

-Andrew

On 7/7/06, Todd Patrick [EMAIL PROTECTED] wrote:
 I have been unsuccessful in implementing the Lazy Loading technique
 that was described in the wiki or as described using AjaxAnywhere by
 Andrew R.

 By all means, this is my own fault and no one else, I greatly
 appreciate everyone's help!

 Therefore, I am at this point: I really just need the plus sign
 navigation displayed for every node, no matter if the node has a child

 or not.

 A user that clicks on the plus sign will run a server ActionEvent
 that will get the children for that node.

 If there is no children, do nothing.

 I went back and studied the following comment on Andrew R. blog: The
 tree2 renderer looks only at the getChildCount method, not the
 getChildren method when rendering. Meaning that if getChildCount
 should return 0, getChildren will never be called unless the node is
expanded.

 Ok, good... now I should just be able to override the getChildCount
 method if I extend the TreeNodeBase class, such as:

 public int getChildCount() {
 return 1;
 }

 So, in combination with the wiki example Alternative Tree2 Lazy
 Loading Method...by jtmille3:

 public class LazyTreeNode extends TreeNodeBase {

 private static final long serialVersionUID =
 -6870203633601493362L;

 public LazyTreeNode() {
 }

 public LazyTreeNode(String type, String description, boolean
 leaf) {
 super(type, description, leaf);
 }

 public LazyTreeNode(String type, String description, String
 identifier, boolean leaf) {
 super(type, description, identifier, leaf);
 }

   public int getChildCount() {
   return 1;
   }

 public List getChildren() {
  // if there are no children, try and retrieve them
 if (super.getChildren().size() == 0) {
  super.getChildren().add(new
 LazyTreeNode(document, + id,  + id,false));
 }

 return super.getChildren();
 }
 }

 This doesn't work. What I end up with is the parent value repeated
 such
 as:

 - A
 |_ A
 |_ A
 |_ A

 Instead, I should have:

 - A
 |_ B
 |_ C
 |_ D

 The way I build my tree children is in a *for* loop in the following
 method:

  public void getTreeTransactBranch(String _transactID, TreeNode
 _transactNode) throws NamingException{
 InitialContext ctx = new InitialContext();
 DataSource ds = (javax.sql.DataSource)
 ctx.lookup(jdbc/__Pool);
 Connection con;
 List TransactRow treeBranch = new LinkedList();

 try {
 con = ds.getConnection();
 try {
 TransactRow tree = new TransactRow();
 treeBranch = tree.selectByParentID(con, _transactID);

 for (TransactRow row : treeBranch) {

childTransactLeafLabel.append(row.getXactTypeID());
 childTransactLeafLabel.append(spacer);
 childTransactLeafLabel.append(row.getName());

RE: JSF Performance Problems

2006-07-09 Thread Dhananjay Prasanna

I think the point is that the median time keeps rising. Whereas in JSP
it doesn't, signifying some kind of leak in myfaces or the use of it...

On a pure performance level I'd love to see how JSF stacks against
Tapestry which takes a pooled-backing bean approach. I am convinced that
creating and destroying hundreds (possibly thousands) of request-scoped
backing beans every second WILL cause JSF scaling problems despite what
craig has said in the past regarding bb's intention of being lightweight
(the problem is, in a practical environment it is often hard to avoid
heavyweight/work-heavy controllers--especially if they are EJB backed).

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of
Matthias Wessendorf
Sent: Monday, 10 July 2006 4:17 AM
To: MyFaces Discussion
Subject: Re: JSF Performance Problems

Faclets gives you +10 - 15% more

On 7/9/06, Yee CN [EMAIL PROTECTED] wrote:




 Is the result with Myfaces/JSP?  Can somebody provide performance
comparison
 with Myfaces/Facelets?



 JSF is still a new technology, and there are still plenty of rooms for
 improvements. Furthermore the performance differential won't be as
drastic
 once we factor in business logic, persistence, AJAX etc.



 IMHO reduce development time is still the most important factor to
consider.



 Regards,

 Yee



  


 From: jfaronson [mailto:[EMAIL PROTECTED]
  Sent: Sunday, July 09, 2006 8:11 AM

  To: users@myfaces.apache.org
  Subject: JSF Performance Problems







 I grabbed the attachments from the original performance bug
 https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=3
 and ran some JMeter tests against the JSP only and the JSF versions.
The
 pages are really simple, the JSP version outputs a page which is
visually
 identical to the JSF page. The table in question had 10 columns and 50
- 200
 rows. Not a huge amount of data. I used MyFaces 1.1.3 as the JSF
 implementation and ran the test in JBoss 4.0.4 GA running on JDK
1.4.2.
 Here's the results:

Table Rows   Average [ms]  Median [ms]   Hits / Min
Samples
 JSF Testcase50   36301300
5007
 JSP Testcase50   14104030
5001
 JSF Testcase100  56601050
5001
 JSP Testcase100  21202700
5001
 JSF Testcase200  100   100   590
5001
 JSP Testcase200  26302170
5001


 This data confirms the discussion in the sun forum. The JSF version
started
 out nearly three times slower than the JSP page. The relative
performance of
 the JSF version degraded to nearly four times slower as table rows
were
 added. So if you are thinking about adopting JSF you should be aware
of the
 performance hit and make sure that you can architect around the
problem or
 get the performance benchmarks adjusted. Perceived performance is
important
 in real life projects so it's more than a theoretical problem. I'd
also like
 to know if anybody has ideas or code samples that make JSF perform
better?
  


 View this message in context: JSF Performance Problems
  Sent from the MyFaces - Users forum at Nabble.com.



--
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

This correspondence is for the named persons only.
It may contain confidential or privileged information or both.
No confidentiality or privilege is waived or lost by any mis transmission.
If you receive this correspondence in error please delete it from your system 
immediately and notify the sender.
You must not disclose, copy or relay on any part of this correspondence, if you 
are not the intended recipient.
Any opinions expressed in this message are those of the individual sender 
except where the sender expressly,
and with the authority, states them to be the opinions of the Department of 
Emergency Services, Queensland.


Re: JSF Performance Problems

2006-07-09 Thread Dennis Byrne
Are you using client or server side state saving?  Using the latter will cut 
response times in half.

Dennis Byrne

-Original Message-
From: Dhananjay Prasanna [mailto:[EMAIL PROTECTED]
Sent: Monday, July 10, 2006 12:40 AM
To: 'MyFaces Discussion'
Subject: RE: JSF Performance Problems


I think the point is that the median time keeps rising. Whereas in JSP
it doesn't, signifying some kind of leak in myfaces or the use of it...

On a pure performance level I'd love to see how JSF stacks against
Tapestry which takes a pooled-backing bean approach. I am convinced that
creating and destroying hundreds (possibly thousands) of request-scoped
backing beans every second WILL cause JSF scaling problems despite what
craig has said in the past regarding bb's intention of being lightweight
(the problem is, in a practical environment it is often hard to avoid
heavyweight/work-heavy controllers--especially if they are EJB backed).

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of
Matthias Wessendorf
Sent: Monday, 10 July 2006 4:17 AM
To: MyFaces Discussion
Subject: Re: JSF Performance Problems

Faclets gives you +10 - 15% more

On 7/9/06, Yee CN [EMAIL PROTECTED] wrote:




 Is the result with Myfaces/JSP?  Can somebody provide performance
comparison
 with Myfaces/Facelets?



 JSF is still a new technology, and there are still plenty of rooms for
 improvements. Furthermore the performance differential won't be as
drastic
 once we factor in business logic, persistence, AJAX etc.



 IMHO reduce development time is still the most important factor to
consider.



 Regards,

 Yee



  


 From: jfaronson [mailto:[EMAIL PROTECTED]
  Sent: Sunday, July 09, 2006 8:11 AM

  To: users@myfaces.apache.org
  Subject: JSF Performance Problems







 I grabbed the attachments from the original performance bug
 https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=3
 and ran some JMeter tests against the JSP only and the JSF versions.
The
 pages are really simple, the JSP version outputs a page which is
visually
 identical to the JSF page. The table in question had 10 columns and 50
- 200
 rows. Not a huge amount of data. I used MyFaces 1.1.3 as the JSF
 implementation and ran the test in JBoss 4.0.4 GA running on JDK
1.4.2.
 Here's the results:

Table Rows   Average [ms]  Median [ms]   Hits / Min
Samples
 JSF Testcase50   36301300
5007
 JSP Testcase50   14104030
5001
 JSF Testcase100  56601050
5001
 JSP Testcase100  21202700
5001
 JSF Testcase200  100   100   590
5001
 JSP Testcase200  26302170
5001


 This data confirms the discussion in the sun forum. The JSF version
started
 out nearly three times slower than the JSP page. The relative
performance of
 the JSF version degraded to nearly four times slower as table rows
were
 added. So if you are thinking about adopting JSF you should be aware
of the
 performance hit and make sure that you can architect around the
problem or
 get the performance benchmarks adjusted. Perceived performance is
important
 in real life projects so it's more than a theoretical problem. I'd
also like
 to know if anybody has ideas or code samples that make JSF perform
better?
  


 View this message in context: JSF Performance Problems
  Sent from the MyFaces - Users forum at Nabble.com.



--
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

This correspondence is for the named persons only.
It may contain confidential or privileged information or both.
No confidentiality or privilege is waived or lost by any mis transmission.
If you receive this correspondence in error please delete it from your system 
immediately and notify the sender.
You must not disclose, copy or relay on any part of this correspondence, if 
you are not the intended recipient.
Any opinions expressed in this message are those of the individual sender 
except where the sender expressly,
and with the authority, states them to be the opinions of the Department of 
Emergency Services, Queensland.