2
0

ArrayBenchmark.cs 1.1 KB

123456789101112131415161718192021222324
  1. using BenchmarkDotNet.Attributes;
  2. using BenchmarkDotNet.Configs;
  3. using BenchmarkDotNet.Jobs;
  4. namespace Jint.Benchmark
  5. {
  6. [Config(typeof(Config))]
  7. public class ArrayBenchmark : SingleScriptBenchmark
  8. {
  9. private class Config : ManualConfig
  10. {
  11. public Config()
  12. {
  13. // if Jint array performance gets better we can go towards defaul 16/16
  14. Add(Job.ShortRun.WithInvocationCount(4).WithUnrollFactor(4));
  15. }
  16. }
  17. protected override string Script => "var ret=[],tmp,num=500,i=1024;for(var j1=0;j1<i*15;j1++){ret=[];ret.length=i}for(var j2=0;j2<i*10;j2++){ret=new Array(i)}ret=[];for(var j3=0;j3<i;j3++){ret.unshift(j3)}ret=[];for(var j4=0;j4<i;j4++){ret.splice(0,0,j4)}var a=ret.slice();for(var j5=0;j5<i;j5++){tmp=a.shift()}var b=ret.slice();for(var j6=0;j6<i;j6++){tmp=b.splice(0,1)}ret=[];for(var j7=0;j7<i*25;j7++){ret.push(j7)}var c=ret.slice();for(var j8=0;j8<i*25;j8++){tmp=c.pop()}var done = true;";
  18. [Params(1)]
  19. public override int N { get; set; }
  20. }
  21. }