Skip to content

Slow initialization when getting Jint instance #72

Open
@bakkar1989

Description

@bakkar1989

I am trying to make use of Jint object to pass a custom variable from c# to javascript.

When calling the method "GetOrCreateJint" to get the instance it slows down by 300 - 400 ms on my laptop.

Also i tried to create 100 instances to use as pooling but its taking over 2GB of memory.

Are these two scenarios expected or there is a workaround?

 static List<(IDocument Dom, Engine Js)> engineList = new List<(IDocument Dom, Engine Js)>();
     public static void TestSpeed()
     {
         for (int i = 0; i < 100; i++)
         {
             Stopwatch sw = new Stopwatch();
             sw.Start();
             var config = Configuration.Default.WithJs();
             var context = BrowsingContext.New(config);
             
             var jsEngine = context.GetService<JsScriptingService>();

             var doc = context.OpenAsync(req => req.Content("<html><head></head><body></body></html>")).Result;
             
             // slow loading
             var engine = jsEngine.GetOrCreateJint(doc);

             engine.SetValue("myVar", "value");

             // 100 instances == 2Gb Memory
             engineList.Add((doc, engine));

             sw.Stop();
             Console.WriteLine(i + " - " + sw.ElapsedMilliseconds);
         }
         Console.ReadLine();
     }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions