Ver código fonte

put other engines behind features toggle, make array test less stressful

Marko Lahma 7 anos atrás
pai
commit
35559da7b1

+ 2 - 2
Jint.Benchmark/ArrayBenchmark.cs

@@ -16,9 +16,9 @@ namespace Jint.Benchmark
             }
         }
 
-        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;";
+        protected override string Script => "var ret=[],tmp,num=100,i=256;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;";
 
-        [Params(5)]
+        [Params(20)]
         public override int N { get; set; }
     }
 }

+ 0 - 1
Jint.Benchmark/EvaluationBenchmark.cs

@@ -1,5 +1,4 @@
 using BenchmarkDotNet.Attributes;
-using Jurassic;
 
 namespace Jint.Benchmark
 {

+ 13 - 8
Jint.Benchmark/SingleScriptBenchmark.cs

@@ -1,6 +1,4 @@
 using BenchmarkDotNet.Attributes;
-using Jurassic;
-using NiL.JS.Core;
 
 namespace Jint.Benchmark
 {
@@ -8,8 +6,11 @@ namespace Jint.Benchmark
     public abstract class SingleScriptBenchmark
     {
         private Engine sharedJint;
-        private ScriptEngine sharedJurassic;
-        private Context sharedNilJs;
+
+#if ENGINE_COMPARISON
+        private Jurassic.ScriptEngine sharedJurassic;
+        private NiL.JS.Core.Context sharedNilJs;
+#endif
 
         protected abstract string Script { get; }
 
@@ -23,8 +24,10 @@ namespace Jint.Benchmark
         public void Setup()
         {
             sharedJint = new Engine();
-            sharedJurassic = new ScriptEngine();
-            sharedNilJs = new Context();
+#if ENGINE_COMPARISON
+            sharedJurassic = new Jurassic.ScriptEngine();
+            sharedNilJs = new NiL.JS.Core.Context();
+#endif
         }
 
         [Benchmark]
@@ -41,13 +44,14 @@ namespace Jint.Benchmark
             return done;
         }
 
+#if ENGINE_COMPARISON
         [Benchmark]
         public bool Jurassic()
         {
             bool done = false;
             for (var i = 0; i < N; i++)
             {
-                var jurassicEngine = ReuseEngine ? sharedJurassic : new ScriptEngine();
+                var jurassicEngine = ReuseEngine ? sharedJurassic : new Jurassic.ScriptEngine();
                 jurassicEngine.Execute(Script);
                 done |= jurassicEngine.GetGlobalValue<bool>("done");
             }
@@ -61,12 +65,13 @@ namespace Jint.Benchmark
             bool done = false;
             for (var i = 0; i < N; i++)
             {
-                var nilcontext = ReuseEngine ? sharedNilJs : new Context();
+                var nilcontext = ReuseEngine ? sharedNilJs : new NiL.JS.Core.Context();
                 nilcontext.Eval(Script);
                 done |= (bool) nilcontext.GetVariable("done");
             }
 
             return done;
         }
+#endif
     }
 }