7

我正在考虑将 IronPython 作为我正在编写的应用程序的脚本语言嵌入。所以为了尝试一下,我下载了 IronPython 2.0 并启动了交互式解释器。在我的带有 6 Gigs 内存的 Intel Quad Core 上,刚启动这件事大约需要 5 秒钟。我很难想象这对于一台功能较弱的机器来说会有多大的延迟。

基于这些基准,看起来 IronPython 的性能实际上并不算太差。或者是吗?我在安装过程中是否配置错误?或者这是交互式解释器的问题?

4

5 回答 5

13

IronPython 的性能确实相当不错。您获得的启动性能损失与 .NET 运行时有关。.NET 应用程序的启动时间通常很慢,因为大量程序集被加载,其中一些(至少是一些类)被即时编译。

这是 .NET 中的预期行为。实际运行时性能要好得多。通过预编译 IronPython 程序集并将副本放入 GAC:您机器的全局程序集缓存,甚至可以提高启动性能。这可以使用gacutil.exe.

于 2009-02-08T17:32:09.250 回答
4

您还可以预编译 IronPython 附带的标准库,以获得更好的启动性能。有一个 pyc.py 示例可以做到这一点。

于 2009-02-08T18:24:33.433 回答
2

内核数量不会对启动性能产生太大影响 :)

由于 32 位和 64 位抖动之间的性能差异,在 64 位操作系统上启动特别慢。如果您使用的是 64 位操作系统但不需要 64 位进程,请尝试以下操作:

  1. 将 ipy.exe 复制到 ipy32.exe
  2. 使用 Windows SDK 中的 corflags.exe 通过说“corflags /32bit+ ipy32.exe”将 ipy32.exe 标记为 32 位可执行文件。

32 位版本应该会给你更好的启动——尽管仍然远不及 CPython 启动。但这是我们正在继续努力的事情。

于 2009-02-19T06:15:54.027 回答
1

启动时间和运行性能没有直接关系。Java applet 之所以享有盛名,主要不是因为 applet 运行缓慢,而是因为它需要几分钟的运行时间才能启动。如果您正在做一个桌面应用程序,我会担心启动性能。如果您正在运行的服务器代码的运行时间始终处于正常状态,那么这不是问题。

于 2009-02-08T17:36:42.767 回答
1

CodePlex 上 IronPython 代码的解释器启动时间有所改进。尽管与 CPython 相比,我仍然看到延迟,但有显着的改进。

于 2009-03-09T00:36:31.670 回答