Hi, I'm currently analyzing an application built completely with Tapestry, and additionally uses Spring, Hibernate, and EJBs. The main tool for the performance analysis is an agent that is deployed in WebLogic and reads HTTP requests, bean calls, and mostly everything that happens inside the application (with, of course, a performance penalty while the agent is on).
But, obviously, there are only two main HTTP requests that show up in the tool: a GET on /app_name/app, and POST on the same URL. Although it is possible to analyze the request parameters, it would be very hard to determine which pages are being called the most, which take the most time to render, etc, without adding some kind of logging to the app source, because most of the time the parameters, as all of you know, are everything but friendly (the app is built with TP 3.0). So the tool really has a hard time trying to figure which requests are the slowest, and the bean request tree is a huge list of all the beans that are called from within Tapestry .java controllers, regardless of the page. Since the app is using IoC through Spring, this makes it even harder to figure which calls are being made at any specific point. The tool does a fairly good job hooking itself to the app server and its JVMs, so there's still a pretty large list of EJBs, SQL commands and Spring services that might need to be looked at, because they can take as much as 30 seconds to execute. But I'm hearing some voices that speak "Hmm, maybe Tapestry is to blame here", since all requests go through Tapestry's servlet and filter, and I have very few elements to fight those voices. So I have several thoughts and questions, hoping that somebody will shed some light on this: * Anyone knows of a tool that might be less request-oriented that maybe even know how to interpret TP's parameters? * If small logging statements were to be added to the .java pages, which would be the method(s) to add the logging to? pageBeginRender is the obvious candidate here, but that would only take into account rendering, without form submitting and component render cycles... * Is there a way to, through configuration, improve Tapestry's reading of these kind of statistics? I'm thinking maybe friendly URLs, but there might be other answers... * How to really determine how much time Tapestry is taking in doing its job? For example, he tool is displaying a cumulative time of 4.61 seconds for /app_name/app, but an "exclusive time" (meaning the time that the method spends by itself, without the accessories) of 0.025 seconds. Now that sounds great, but does it seem logical? I mean, maybe some other components should be taken into account. * Anyone knows if Spring's methods to invoke and instantiate EJBs are slow? The tool says that it can take as much as 2 seconds to do so!! Maybe another place where traditional monitoring lacks? Regards, Dario -- Some weasel took the cork out of my lunch. -- W.C. Fields --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
