我正在尝试使用IronPython扩展我的一个WebApp,遗憾的是下面的代码运行得非常慢:
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 Engine的创建大部分时间都在使用,因为即使像Python这样的解释语言也应该运行得相对较快。
所以,假设我的假设是正确的;我可以将Python Engine存储在某处以节省每次创建它的费用吗?或者有更好的方法吗?
安东尼
答案 0 :(得分:1)
如果对引擎的访问是线程安全的,您只需将其存储在某个静态实例变量中即可。
如果访问不是线程安全的,您应该同步对它的访问,可能池化实例以减少锁争用。