12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- using System;
- using System.Diagnostics;
- using System.IO;
- using System.Reflection;
- using Jint.Parser;
- namespace Jint.Benchmark
- {
- class Program
- {
- private const string script = @"
- var o = {};
- o.Foo = 'bar';
- o.Baz = 42;
- o.Blah = o.Foo + o.Baz;
- function fib(n){
- if(n<2) {
- return n;
- }
-
- return fib(n-1) + fib(n-2);
- }
- fib(3);
- ";
- static void Main(string[] args)
- {
- const int iterations = 1000;
- const bool reuseEngine = false;
- var watch = new Stopwatch();
- // warming up engines
- var jurassic = new Jurassic.ScriptEngine();
- jurassic.Execute(script);
- var jint = new Jint.Engine();
- jint.Execute(script);
- var ironjs = new IronJS.Hosting.CSharp.Context();
- ironjs.Execute(script);
- watch.Restart();
- for (var i = 0; i < iterations; i++)
- {
- if (!reuseEngine)
- {
- ironjs = new IronJS.Hosting.CSharp.Context();
- }
- jurassic.Execute(script);
- }
- Console.WriteLine("IronJs: {0} iterations in {1} ms", iterations, watch.ElapsedMilliseconds);
- watch.Restart();
- for (var i = 0; i < iterations; i++)
- {
- if (!reuseEngine)
- {
- jint = new Jint.Engine();
- }
- jint.Execute(script);
- }
- Console.WriteLine("Jint: {0} iterations in {1} ms", iterations, watch.ElapsedMilliseconds);
- watch.Restart();
- for (var i = 0; i < iterations; i++)
- {
- if (!reuseEngine)
- {
- jurassic = new Jurassic.ScriptEngine();
- }
- jurassic.Execute(script);
- }
- Console.WriteLine("Jurassic: {0} iterations in {1} ms", iterations, watch.ElapsedMilliseconds);
- }
- }
- }
|