我正在做一些IronPython 2.6.1和clr.CompileModules函数的实验,以将我的大脚本编译为程序集。测试已经显示出良好的冷启动性能性能改进,但在某些情况下,导入编译模块实际上比在某些情况下执行代表我的代码的大字符串要慢。编译代码的IronPython导入性能
我的问题是,如果我使用像
scope.Engine.Execute(string.Format("from {0} import {0}", theModule), scope);
或ImportModule
功能,即使我得到一个新的ScriptSCope回做的DLR缓存的进口在其他ScriptScopes做?所以如果模块1和模块10导入相同的类型,我只需要一次性能命中?
正在使用clr.CompileModules
优于scope.Compile()
?我的理解是即时编译是有用的,如果我不想管理额外的程序集并且只想支付一次编译成本。
谢谢,我一直在应用程序上运行dotTrace,切换到已编译的IronPython代码,看起来像是冷启动性能的前进方向。不过,我仍然在ImportModule中花费大量时间。我有一个包含29个模块的程序集,我在同一个范围内运行“from foo import bar”,然后将该类的变量提取到C#中以供使用。减少导入依赖关系这些模块减少了导入时间是模块本身的导入时间? – 2011-02-09 04:13:31