2009-07-20 85 views
0

我试图延长使用IronPython的我的WebApp之一,遗憾的是下面的代码运行得慢:存储昂贵的对象,以便在ASP.NET MVC中重用?

 var engine = Python.CreateEngine(); 
     SourceCodeKind st = SourceCodeKind.Statements; 
     string source = "print 'Hello World'"; 
     var script = engine.CreateScriptSourceFromString(source, st); 
     var scope = engine.CreateScope(); 
     script.Execute(scope); 

我假设了Python引擎的创建采取的大部分时间,因为即使像Python这样的解释性语言应该运行得相对较快。

因此,假设我的假设是正确的;我可以在任何地方存储Python引擎以节省每次创建它的费用吗?还是有更好的方法来做到这一点?

安东尼

回答

1

如果进入发动机是线程安全的,你可以简单地将其存储在一个静态实例变量的地方。

如果访问不是线程安全的,则应该对其进行同步访问,可能将实例池化以减少锁争用。

相关问题