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);
>

Reply via email to