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.
