You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Alessandro Di Maria <ad...@braus.ch> on 2002/08/15 11:58:34 UTC

performance problem

Hello!

I have extremly performance problem!

I send a http-request to Tomcat, which forwards the request over RMI to 
a business logic.
This sends back a XML with the templates to include and values to place 
in the templates.

This process takes about 100 - 400ms (not very fast but ok)

After received the answer, Tomcat processes the XML via a few custom 
tags to include
templates and write text values in this templates.

A small (3k) template needs about 500ms to display.
A little bit larger one (9k), about 20 sec!!!!

For the time the HTML is created (resolving custom tags) , Tomcat is 
using 100% of the CPU!

Looking at my log files, it seems that the HttpProcessor-Thread on 
Tomcat is blocked
by another tomcat thread. In intervalls of about 4sec the 
HttpProcessor-Thread can process a little
bit of its code and than is blocked again.

Or tomcat is not able to hold the request object and writes it somewhere 
to disk.
So every 4sec it has to read or write the information needed for this 
process to disk.
Must I increment the cache for the context or the server? But where and how?

Here a snippet of my  log-file:
2002-08-14 15:49:36,403 DEBUG [HttpProcessor[8080][3]] 
obsession.juice.out CmsTag doStartTag - CurrentNode = [Element: 
<pers_klassifikation/>] looking for child [pers_klassifikation_item] 1 of 2

2002-08-14 15:49:40,068 DEBUG [HttpProcessor[8080][3]] 
obsession.juice.out SelectTag getOutputText - looking for parent

the JSP-Code involved in this 4 sec:
....
<tr>
        <td><cms:text name="pers_klassifikation" data="name"/></td>
        <td>
        <select size="1" class="long" name="<cms:text 
name="pers_klassifikation" data="parameter"/>">
        <cms:enter_area name="pers_klassifikation">
            <cms:area name="pers_klassifikation_item">
            <option value="<cms:text name="pers_klassifikation_item" 
data="value"/>" <cms:select name="pers_klassifikation_item" 
output="selected"/>><cms:text name="pers_klassifikation_item"/></option>
            </cms:area>
        </cms:enter_area>
        </select>
        </td>
</tr>
....

the XML needed to populate the custom tags:

<pers_klassifikation name="Klassifikation" 
parameter="fk_klassifikation_id" validate="int" range="1:100" 
mandatory="0" id="44" value="2">
  <pers_klassifikation_item value="1">Lead</pers_klassifikation_item>
  <pers_klassifikation_item value="2">Honorar</pers_klassifikation_item>
</pers_klassifikation>

4sec to know if the <option> tag is selected or not!

Libraries involved jdom.jar and log4j.jar

Using Tomcat 4.0.3, Java 1.3 on Windows2000 and Linux Debian as well.

Thx for any help
Alessandro


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: performance problem

Posted by peter lin <pe...@labs.gte.com>.
before you go exploring other ideas, try jasper2 from the latest beta
4.1.9.

if you have nested tags, most likely you're suffering from jdk bug with
deeply nested try/catch. I would bother looking into other things until
you've atleast tried jasper2.

peter


Alessandro Di Maria wrote:
> 
> Hello!
> 
> I have extremly performance problem!
> 
> I send a http-request to Tomcat, which forwards the request over RMI to
> a business logic.
> This sends back a XML with the templates to include and values to place
> in the templates.
> 
> This process takes about 100 - 400ms (not very fast but ok)
> 
> After received the answer, Tomcat processes the XML via a few custom
> tags to include
> templates and write text values in this templates.
> 
> A small (3k) template needs about 500ms to display.
> A little bit larger one (9k), about 20 sec!!!!
> 
> For the time the HTML is created (resolving custom tags) , Tomcat is
> using 100% of the CPU!
> 
> Looking at my log files, it seems that the HttpProcessor-Thread on
> Tomcat is blocked
> by another tomcat thread. In intervalls of about 4sec the
> HttpProcessor-Thread can process a little
> bit of its code and than is blocked again.
> 
> Or tomcat is not able to hold the request object and writes it somewhere
> to disk.
> So every 4sec it has to read or write the information needed for this
> process to disk.
> Must I increment the cache for the context or the server? But where and how?
> 
> Here a snippet of my  log-file:
> 2002-08-14 15:49:36,403 DEBUG [HttpProcessor[8080][3]]
> obsession.juice.out CmsTag doStartTag - CurrentNode = [Element:
> <pers_klassifikation/>] looking for child [pers_klassifikation_item] 1 of 2
> 
> 2002-08-14 15:49:40,068 DEBUG [HttpProcessor[8080][3]]
> obsession.juice.out SelectTag getOutputText - looking for parent
> 
> the JSP-Code involved in this 4 sec:
> ....
> <tr>
>         <td><cms:text name="pers_klassifikation" data="name"/></td>
>         <td>
>         <select size="1" class="long" name="<cms:text
> name="pers_klassifikation" data="parameter"/>">
>         <cms:enter_area name="pers_klassifikation">
>             <cms:area name="pers_klassifikation_item">
>             <option value="<cms:text name="pers_klassifikation_item"
> data="value"/>" <cms:select name="pers_klassifikation_item"
> output="selected"/>><cms:text name="pers_klassifikation_item"/></option>
>             </cms:area>
>         </cms:enter_area>
>         </select>
>         </td>
> </tr>
> ....
> 
> the XML needed to populate the custom tags:
> 
> <pers_klassifikation name="Klassifikation"
> parameter="fk_klassifikation_id" validate="int" range="1:100"
> mandatory="0" id="44" value="2">
>   <pers_klassifikation_item value="1">Lead</pers_klassifikation_item>
>   <pers_klassifikation_item value="2">Honorar</pers_klassifikation_item>
> </pers_klassifikation>
> 
> 4sec to know if the <option> tag is selected or not!
> 
> Libraries involved jdom.jar and log4j.jar
> 
> Using Tomcat 4.0.3, Java 1.3 on Windows2000 and Linux Debian as well.
> 
> Thx for any help
> Alessandro
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


RE: performance problem

Posted by Jacob Hookom <ho...@uwec.edu>.
It looks like you are using custom tags, and usually with XML
transformations, they are quite processor heavy.  You might want to look
at the new Jaxen benchmarks with Dom4j:

www.jaxen.org

-Jacob

| -----Original Message-----
| From: Alessandro Di Maria [mailto:adimaria@braus.ch]
| Sent: Thursday, August 15, 2002 4:59 AM
| To: tomcat-user
| Subject: performance problem
| 
| Hello!
| 
| I have extremly performance problem!
| 
| I send a http-request to Tomcat, which forwards the request over RMI
to
| a business logic.
| This sends back a XML with the templates to include and values to
place
| in the templates.
| 
| This process takes about 100 - 400ms (not very fast but ok)
| 
| After received the answer, Tomcat processes the XML via a few custom
| tags to include
| templates and write text values in this templates.
| 
| A small (3k) template needs about 500ms to display.
| A little bit larger one (9k), about 20 sec!!!!
| 
| For the time the HTML is created (resolving custom tags) , Tomcat is
| using 100% of the CPU!
| 
| Looking at my log files, it seems that the HttpProcessor-Thread on
| Tomcat is blocked
| by another tomcat thread. In intervalls of about 4sec the
| HttpProcessor-Thread can process a little
| bit of its code and than is blocked again.
| 
| Or tomcat is not able to hold the request object and writes it
somewhere
| to disk.
| So every 4sec it has to read or write the information needed for this
| process to disk.
| Must I increment the cache for the context or the server? But where
and
| how?
| 
| Here a snippet of my  log-file:
| 2002-08-14 15:49:36,403 DEBUG [HttpProcessor[8080][3]]
| obsession.juice.out CmsTag doStartTag - CurrentNode = [Element:
| <pers_klassifikation/>] looking for child [pers_klassifikation_item] 1
of
| 2
| 
| 2002-08-14 15:49:40,068 DEBUG [HttpProcessor[8080][3]]
| obsession.juice.out SelectTag getOutputText - looking for parent
| 
| the JSP-Code involved in this 4 sec:
| ....
| <tr>
|         <td><cms:text name="pers_klassifikation" data="name"/></td>
|         <td>
|         <select size="1" class="long" name="<cms:text
| name="pers_klassifikation" data="parameter"/>">
|         <cms:enter_area name="pers_klassifikation">
|             <cms:area name="pers_klassifikation_item">
|             <option value="<cms:text name="pers_klassifikation_item"
| data="value"/>" <cms:select name="pers_klassifikation_item"
| output="selected"/>><cms:text
name="pers_klassifikation_item"/></option>
|             </cms:area>
|         </cms:enter_area>
|         </select>
|         </td>
| </tr>
| ....
| 
| the XML needed to populate the custom tags:
| 
| <pers_klassifikation name="Klassifikation"
| parameter="fk_klassifikation_id" validate="int" range="1:100"
| mandatory="0" id="44" value="2">
|   <pers_klassifikation_item value="1">Lead</pers_klassifikation_item>
|   <pers_klassifikation_item
value="2">Honorar</pers_klassifikation_item>
| </pers_klassifikation>
| 
| 4sec to know if the <option> tag is selected or not!
| 
| Libraries involved jdom.jar and log4j.jar
| 
| Using Tomcat 4.0.3, Java 1.3 on Windows2000 and Linux Debian as well.
| 
| Thx for any help
| Alessandro
| 
| 
| --
| To unsubscribe, e-mail:   <mailto:tomcat-user-
| unsubscribe@jakarta.apache.org>
| For additional commands, e-mail: <mailto:tomcat-user-
| help@jakarta.apache.org>
| 
| ---
| Incoming mail is certified Virus Free.
| Checked by AVG anti-virus system (http://www.grisoft.com).
| Version: 6.0.381 / Virus Database: 214 - Release Date: 8/2/2002
| 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.381 / Virus Database: 214 - Release Date: 8/2/2002
 


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>