jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <p.moua...@ubik-ingenierie.com>
Subject Re: Scripting language performance
Date Mon, 14 Jan 2013 20:38:38 GMT
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> 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.server.gcInterval=600000
>>> >  set PERM=-XX:PermSize=64m -XX:MaxPermSize=64m
>>> >
>>> >Script for Beanshell and groovy:
>>> >for (int i=0;i<10;i++){
>>> >  line="1027448,1".split(",");
>>> >  pid=line[0];
>>> >  mid=line[1];
>>> >  vars.put("pid"+i,pid);
>>> >  vars.put("mid"+i,mid);
>>> >}
>>> >cartParam="";
>>> >for (int i=0;i<10;i++){
>>> >  pid=vars.get("pid"+i);
>>> >  mid=vars.get("mid"+i);
>>> >  param=mid+"_"+pid+"_"+"0_0_1=1";
>>> >  if (cartParam=="")
>>> >    cartParam=param;
>>> >  else
>>> >    cartParam+=","+param;
>>> >}
>>> >vars.put("cartParam",cartParam);
>>> >
>>> >Script for rhino and javascript:
>>> >for (var i=0;i<10;i++){
>>> >  line="1027448,1".split(",");
>>> >  pid=line[0];
>>> >  mid=line[1];
>>> >  vars.put("pid"+i,pid);
>>> >  vars.put("mid"+i,mid);
>>> >}
>>> >var cartParam="";
>>> >for (var i=0;i<10;i++){
>>> >  pid=vars.get("pid"+i);
>>> >  mid=vars.get("mid"+i);
>>> >  param=mid+"_"+pid+"_"+"0_0_1=1";
>>> >  if (cartParam=="")
>>> >    cartParam=param;
>>> >  else
>>> >    cartParam+=","+param;
>>> >}
>>> >vars.put("cartParam",cartParam);
>>> >
>>>
>>>
>>
>>
>> --
>> Cordialement.
>> Philippe Mouawad.
>>
>>
>>
>
>
> --
> Cordialement.
> Philippe Mouawad.
>
>
>


-- 
Cordialement.
Philippe Mouawad.
Ubik-Ingénierie

UBIK-INGENIERIE on TWITTER <https://twitter.com/ubikingenierie>

UBIK LOAD PACK BLOG <http://www.ubik-ingenierie.com/blog/>

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