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/> >
