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:[email protected]] 
>2013年1月15日 4:39
>[email protected]
>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 < 
>[email protected]> 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 < 
>> [email protected]> 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(测试部_贺寅) <[email protected]>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/>
>

Reply via email to