我正在编写业务逻辑解释器,在大多数情况下,它们将是不变的,不变的python模块和软件包。在运行时进行一些更改就可以重新编译所有内容,这是可以承受的。因此,我查看了个人资料,发现大部分时间在简单代码示例(即result = 1+1
之类)上都花在了 PythonContext.Compile 方法上。基本上是98%的时间,这非常可悲。
是否可以缓存编译方法的结果?如果我缓存模块,是否仍然可以在内部传递不同的作用域?
var scope = _engine.CreateScope(arguments);
return _engine.ExecuteFile(fileToExecute, scope);