4

我刚刚尝试使用 Jython (2.5.1) 运行 BeautifulSoup (3.1.0.1),我惊讶地发现它比 CPython 慢了多少。使用 CPython解析页面 ( http://www.fixprotocol.org/specifications/fields/5000-5999 ) 只需不到一秒(准确地说是 0.844 秒)。使用 Jython 需要 564 秒 - 几乎是 700 倍。

谁能证实这个结果?Jython 的运行速度比 CPython 慢 700 倍似乎是不合理的。也许我的设置有问题。

[编辑] 这是我用来测试的代码(当然我下载了上面提到的 HTML 文件):

import time
from BeautifulSoup import BeautifulSoup
data = open("fix-5000-5999.html").read()
start = time.time()
soup = BeautifulSoup(data)
print time.time() - start
4

1 回答 1

6

我可以确认类似的发现。

英特尔 Mac、OS X 10.6.1、Java 1.6.0_15 64 位、Jython 2.5.1。

使用 CPython 2.6.1 运行您的代码需要 0.1–0.2 秒,但使用 Jython 运行它至少需要几十秒;我没有等超过30。它也使用了大量的CPU。

我尝试了 Beautiful Soup 3.0.7a,因为它使用了不同的解析器,但结果相同。

有趣的是,我尝试在不同的 HTML 文件上运行您的代码,它运行良好。但它似乎仍然比 CPython 慢得多:Jython 需要 1.02-1.3 秒;CPython 花费了 0.019–0.020。

在这一点上我没有任何建议,只是您应该考虑在jython-users列表中提出这个问题;我发现那里的社区(包括首席开发人员)反应迅速且乐于助人。

祝你好运!

于 2009-11-03T06:11:54.553 回答