IronPython 2.0缓慢执行代码

时间:2009-05-22 17:25:54

标签: ironpython

似乎IronPython 2.0.1执行的脚本文件比IronPython 1.x慢约3倍。 我不相信这不是我正在做的事情所以我想知道其他人是否也有类似的经历。

我有一个200k的python脚本,从IP 1.x上的文件执行需要5秒,在IP 2.0.1中需要将近18秒!

4 个答案:

答案 0 :(得分:0)

在IronPython中肯定有一些比在Python中慢得多的东西。通常这是因为你在实现中遇到了一个奇怪的角落案例。值得尝试将其简化为一个非常简单的脚本,该脚本展示性能差异并将其发送到IronPython mailing list - 开发人员非常敏感。

最近有一系列关于IronPython表现的有趣博客文章 - this is a good overview。总结一下,一旦避免了陷阱,就可以获得非常好的性能,而且知识产权团队非常有兴趣了解这些问题并快速解决。缩小一个repro来找到陷阱是最困难的部分 - 一旦你找到触发行为的因素,它通常很容易解决。

答案 1 :(得分:0)

当我开始使用IronPython 2.0时,我也有类似的问题。对我来说问题是DLR的启动时间令人沮丧。加载运行时后,脚本性能相当快。

要减少运行时启动时间,可以尝试NGEN'ing the binaries。这使我的启动时间减少了大约60%。

即使有了这个解决方案,它仍然没有那么快相对来说。如果您的脚本没有做太多,启动仍将占用总时间的很大一部分。希望DLR团队能尽快解决启动性能问题。

答案 2 :(得分:0)

您的时间是否包含启动时间? IronPython 2.6 Beta对启动时间和代码编译/执行进行了彻底改进。如果可以,建议您尝试该版本。

干杯, 戴维

答案 3 :(得分:0)

您可以阅读可以使嵌入式方案运行得更快的文章IronPython: Reusing Import Symbols to Avoid Performance Hits