为什么IronPython的启动时间如此缓慢?

12

我已经使用IronPython有一段时间了,但是真正妨碍我的开发的是它启动速度极慢。我喜欢这种语言及其工作方式,但是在代码开始执行之前等待超过20秒真的很令人沮丧。

我进行了一些研究,似乎问题不在于import,而是在此阶段之前。

谢谢。


3
是的,它确实很慢。当 DLR 完全集成到 .NET 4.0 后,看看它是否会更快会很有趣。 - Jon Skeet
希望如此。真是太可惜了,因为它是一款如此好的工具。不过.NET 4看起来确实很棒。不幸的是,我的20GB硬盘已经太累了,无法承载VS2010 :) - Lucas Jones
1个回答

17

我们正在2.6版本中解决这个问题。你今天可以下载Beta 1,你可能会看到启动时间有很大的改善。

问题在于大部分时间通常用于JIT编译代码。如果您使用64位机器,特别是明显得慢。在2.6版本中,我们现在将编译推迟到实际运行时才进行,如果只需要运行一两次,则解释它们,并且我们已将我们在运行时生成的一堆代码移动到IronPython.dll中,因此也从ngen中受益。您将可能从所有这些更改中看到的改进越大,应用程序越大。

如果在安装IronPython时没有选中ngen选项,您可以通过命令行返回并对其进行ngen处理,方法是执行“ngen install ipy.exe”。 ngen.exe位于C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe或C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ngen.exe(如果您使用64位机器)。但需要管理员命令提示符。这将使您从稳定版本中获得一些好处。如果您使用64位机器,则即使选中该框,您也需要执行此操作-存在导致ngen在64位机器上无法正常工作的错误。


今晚我会看一下2.6版本。我以前在使用ngen时遇到过一些不好的经历(咳咳..TOAD),所以我在安装时取消了勾选 - 我也会运行它!谢谢。 - Lucas Jones
我很高兴听到这个问题正在得到解决。我广泛使用IronPython,而这正是我遇到的最大问题。 - riwalk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接