jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject Re: Scripting language performance
Date Tue, 15 Jan 2013 06:19:58 GMT
In nightly build,f you don't add cache key and use text area then script is
not compiled so perfs are not good.
Adding a unique cache key is enough to make the script compiled when
language is compilable as groovy is.
jsr223.compiled_scripts_cache_size just controls the size of cache,
increase its value if you have more than 100 different jsr223 element.

In 2.8, To make compilation active, put script in external file.


In my opinion and according to the results I get, conclusion is :

- in 2.9=> use jsr223 + groovy in text area+  cache key or as below if you
are ok to put your script code in external file

- in 2.8 => use jsr223 + groovy script in file

Regards
Philippe
On Tuesday, January 15, 2013, He Yin(测试部_贺寅) wrote:

> Hello,
>   In the previous test, I put the script code in text area. I guess that
> makes the different.
>   I re-ran my tests under JMeter nightly build, with script codes in file.
> The results show that jsr223 +groovy ran very well with rsp around 1ms, and
> beanshell sampler became a little slower, not that slow like yours.
>
>   I'm not understanding the cache key you said, is that about "
> jsr223.compiled_scripts_cache_size" in jmeter.properties?
>
>   Whatever, do we have some conclusion here? Like better use JSR223/groovy
> with code in file or beanshell if code directly put in textarea.
> I think in most cases we just put code in textarea for convenience.
>
>
> >Philippe Mouawad [mailto:p.mouawad@ubik-ingenierie.com <javascript:;>]
> >2013年1月15日 4:39
> >dev@jmeter.apache.org <javascript:;>
> >Re: Scripting language performance
> >
> >Hello,
> >I just tested a simple test plan with JMeter nightly build / GUI Mode on
> Mac OSX :
> >
> >-server -Xmx512m -Xms512m -Dsun.rmi.dgc.client.gcInterval=600000
> >-Dsun.rmi.dgc.server.gcInterval=600000  -Duser.language=en
> -Duser.language=en -Duser.region=EN
> >
> >
> >1)
> >- JSR223 Sampler with your code
> >- Aggregate Report
> >
> >2)
> >- Beanshell Sampler with your code
> >- Aggregate Report
> >
> >
> >Results for JSR223 + GROOVY + Cache key
> >
> >Label / Samples / Average / Median / 90%Line / Min  /Max / Error% /
> Throughput / KB/Sec
> > JSR223 Sampler / 5000 /
> >0 / 0 / 1 / 0 / 16 / 0.0 / 2820.1 / 0.0
> >Results for Beanshell Sampler :
> >Label / Samples / Average / Median / 90%Line / Min  /Max / Error% /
> Throughput / KB/Sec  BeanShell Sampler / 5000 / 22 / 21 / 37 / 2 / 136 /
> 0.0 / 389.9 /
> >0.0
> >So for me *JSR223+Groovy+Caching* is way better provided *provided
> Caching is active*, when it's not then results are the following :
> >
> >Label / Samples / Average / Median / 90%Line / Min  /Max / Error% /
> Throughput / KB/Sec
> > JSR223 Sampler / 5000 / 99 / 67 / 177 / 7 / 4723 / 0.0 /
> >86.9 /
> >0.0
> >Regards
> >Philippe
> >
> >UBIK-INGENIERIE on TWITTER <https://twitter.com/ubikingenierie>
> >
> >UBIK LOAD PACK BLOG <http://www.ubik-ingenierie.com/blog/>
> >
> >On Mon, Jan 14, 2013 at 9:24 PM, Philippe Mouawad <
> philippe.mouawad@gmail.com <javascript:;>> wrote:
> >
> >> Hello,
> >> Sorry I read your mail too fast.
> >> My questions:
> >>
> >>    - Where did you put the Groovy script code (in text area or in file
> )?
> >>
> >>
> >> Could you try it with JMeter nightly build ?
> >>
> >> Thanks
> >> Regards
> >> Philippe
> >>
> >>
> >> On Mon, Jan 14, 2013 at 12:37 PM, Philippe Mouawad <
> >> philippe.mouawad@gmail.com> wrote:
> >>
> >>> Hello,
> >>> I would be very interested in the Test Plan you used.
> >>> Which version did you use ? Nightly or 2.8 ?
> >>> If 2.8, where did you put the script code (in text or in file )?
> >>>
> >>> The tests I made (where the script part was not very consequent)
> >>> showed
> >>> JSR223 + GROOVY + CACHING as the best option and showed better
> >>> results than Beanshell.
> >>>
> >>> I am not surprised about javascript not being the good one but other
> >>> results surprise me a bit.
> >>>
> >>> Regards
> >>> Philippe
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> On Mon, Jan 14, 2013 at 11:16 AM, He Yin(测试部_贺寅) <heyin@yihaodian.com
> >wrote:
> >>>
> >>>> Sorry, I'm not used to writing in plain text mode and missed my
> >>>> signature~
> >>>>
> >>>> Best regards,
> >>>> Joey He
> >>>>
> >>>> >Hello,
> >>>> >  In another thread, I noticed Philippe mentioned that " JSR223
> >>>> Samplers + Groovy  + Caching" is a better choice then Beanshell.
> >>>> Since I used a lot of Beanshell in my scripts and never pay
> >>>> attention to it, I decided to make  an investigation of this issue.
> >>>> >  I simplified one of my beanshell script, rewrited it into groovy
> >>>> > and
> >>>> rhino and put them into script-samplers instead of  pre-processors.
> >>>> >The result turned out that
> >>>> >1) Beanshell is better than other solutions
> >>>> >2) Groovy and javascript will cause some gc problems.
> >>>> >3) Groovy is the slowest.
> >>>> >3) BSF and JSR223 seems that waste some cpu time on their framework.
> >>>> >
> >>>> >Am I  doing something wrong?
> >>>> >
> >>>> >(Thread:10, Loop 500)
> >>>> >Label  Samples Average Median  90%     Min     Max     Error%
> >>>>  Throughput      KB/sec  GC occurs
> >>>> >JSR223-groovy  5000    59      39      119     6       3077    0
> >>>> 145.2137546     0       1~2
> >>>> >JSR223-rhino   5000    2       1       2       0       314     0
> >>>> 851.9338899     0       frequently
> >>>> >BeanShell Sampler      5000    1       1       2       0       402
> >>>> 0       1068.832835     0       0
> >>>> >BSF-beanshell  5000    33      27      63      3       328     0
> >>>> 270.6506441     0       0
> >>>> >BSF-javascript 5000    20      6       44      1       640     0
> >>>> 324.7174958     12.68427718     frequently
> >>>> >
> >>>> >Environments: JMeter 2.8,
> >>>> >Uncomment " jsr223.compiled_scripts_cache_size" in
> >>>> >jmeter.properties
> >>>> Groovy version: groovy-all-2.0.6
> >>>> >JVM_OPTS:
> >>>> >  set HEAP=-Xms512m -Xmx512m
> >>>> >  set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
> >>>> >  set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%
> >>>> >  set TENURING=-XX:MaxTenuringThreshold=2
> >>>> >  set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000
> >>>> -Dsun.rmi.dgc.>UBIK-INGENIERIE on TWITTER <
> https://twitter.com/ubikingenierie>
> >
> >UBIK LOAD PACK BLOG <http://www.ubik-ingenierie.com/blog/>
> >
>


-- 
Cordialement.
Philippe Mouawad.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message