123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- using System;
- using System.Diagnostics;
- namespace Jint.Benchmark
- {
- class Program
- {
- private const string Script = @"
- var o = {};
- o.Foo = 'bar';
- o.Baz = 42.0001;
- o.Blah = o.Foo + o.Baz;
- if(o.Blah != 'bar42.0001') throw TypeError;
- function fib(n){
- if(n<2) {
- return n;
- }
- return fib(n-1) + fib(n-2);
- }
- if(fib(3) != 2) throw TypeError;
- ";
- static void Main()
- {
- const bool runIronJs = true;
- const bool runJint = true;
- const bool runJurassic = true;
- const int iterations = 1000;
- const bool reuseEngine = false;
- var watch = new Stopwatch();
- if (runIronJs)
- {
- IronJS.Hosting.CSharp.Context ironjs;
- 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();
- }
- ironjs.Execute(Script);
- }
- Console.WriteLine("IronJs: {0} iterations in {1} ms", iterations, watch.ElapsedMilliseconds);
- }
- if (runJint)
- {
- Engine jint;
- jint = new Engine();
- jint.Execute(Script);
- 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);
- }
- if (runJurassic)
- {
- Jurassic.ScriptEngine jurassic;
- jurassic = new Jurassic.ScriptEngine();
- jurassic.Execute(Script);
- 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);
- }
- }
- }
- }
|