thanks for running those tests. interesting results and good food for thought.  unless 
we are in a hurry to release the next version I am planning on debugging htmlparser 
and figuring where the bug is.
 
the code for the images should be isolated in 2 classes, so tracking down the bug 
should be straight forward. unfortunately I won't have time until friday/saturday at 
the earliest.  We can continue to use JTidy as the default until I fix Htmlparser.
 
does that sound reasonable?
 
peter
 


Jordi Salvat i Alabart <[EMAIL PROTECTED]> wrote:
Hi.

I've been running some tests. Test procedure:

1/ Unpack the attached .tgz in your apache root (apache and JMeter in 
the same machine).

2/ Edit bin/jmeter to contain:
��
#! /bin/sh

ARGS="-Xms256m -Xmx256m -XX:NewSize=128m -XX:MaxNewSize=128m 
-XX:SurvivorRatio=8 -XX:PermSize=64m -XX:MaxPermSize=64m 
-XX:MaxLiveObjectEvacuationRatio=10% -XX:TargetSurvivorRatio=80% 
-XX:MaxTenuringThreshold=3"

ARGS="$ARGS -verbose:gc -XX:+PrintTenuringDistribution"
time java $ARGS -jar `dirname $0`/ApacheJMeter.jar "$@"
��
These parameters are probably suboptimal for regular usage, but were 
optimal for this particular test (total GC times were negligible in all 
tests).

3/ Edit jmeter.properties to choose a parser

4/ Run the attached script with:
bin/jmeter -n -t TestHttpSamplerFullPerformance.jmx

And here's the results:

HtmlParser:
60 scavenges
real 2m24.800s
user 1m58.440s
sys 0m1.780s

Regexp:
14 scavenges
real 2m14.892s
user 1m52.820s
sys 0m2.020s

JTidy:
34 scavenges
real 3m41.518s
user 3m8.690s
sys 0m7.900s

Regexp updated (factor out the '<'):
14 scavenges
real 1m4.732s
user 0m42.380s
sys 0m2.950s

JTidy updated (one single DOM scan):
34 scavenges
real 3m33.466s
user 3m3.810s
sys 0m7.140s

Notes:
- I'm only showing one result, but I ran several to check they were 
reasonably repeatable.
- Each scavenge represents arouns 102MB of garbage (the size of the 
Eden) cleaned away.
- None of the tests ever hit a Full GC -- and I don't think they will in 
human-reasonable times.
- The test does 2000 samples, each sample representing 15 HTTP requests 
(14 for HtmlParserHTMLParser).

Conclusions:
- The new RegexpHTMLParser makes above 30 samples, or 450 requests per 
second. That's about what I got on simple samplers (without parsing), so 
I'd say it's nonsense to spend more time optimizing RegexpHTMLParser 
(although there's opportunities, such as using Awk instead of Perl regexps).
- HtmlParserHTMLParser could get better in memory usage (and probably 
gain some speed in the process: creating objects also costs CPU cycles), 
but I don't think it can catch up with the RegexpHTMLParser.
- JTidyHTMLParser falls well behind in speed, although it's better in 
garbage generation.

Questions:
- ORO PerlMatcher Regexps seems to be tremendously sensible in terms of 
performance. That's scary. We should find a way to integrate a minimal 
performance test in the unit tests, but: how to factor out the CPU 
speed? A BogoMeter?
- Is it worth keeping JTidyHTMLParser around? The only reason I see is 
that HtmlParser seems still too buggy to rely on it...

-- 
Salut,

Jordi.





org.apache.jmeter.config.gui.ArgumentsPanel


org.apache.jmeter.config.Arguments



Argument List


true



org.apache.jmeter.control.gui.TestPlanGui



org.apache.jmeter.testelement.TestPlan


false


Test Plan


true


false





org.apache.jmeter.threads.gui.ThreadGroupGui


0


org.apache.jmeter.threads.ThreadGroup



org.apache.jmeter.control.gui.LoopControlPanel


200


org.apache.jmeter.control.LoopController


Loop Controller


true


false



Thread Group


0





continue


true


10


false


1





/test-httpsamplerfull/Yahoo!.htm


org.apache.jmeter.protocol.http.sampler.HTTPSampler


/test-httpsamplerfull/Yahoo!.htm


GET


true


http


true


true


true






org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel


org.apache.jmeter.config.Arguments



Argument List


true






org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui





HTTP Request


localhost









org.apache.jmeter.visualizers.StatVisualizer


org.apache.jmeter.reporters.ResultCollector


Aggregate Report


false





false






org.apache.jmeter.visualizers.ViewResultsFullVisualizer


org.apache.jmeter.reporters.ResultCollector


View Results Tree


false





false







> ATTACHMENT part 3 application/x-gtar name=test-httpsamplerfull.tgz
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------
Do you Yahoo!?
Free Pop-Up Blocker - Get it now

Reply via email to