我只是尝试使用 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

最佳答案

我可以确认类似的发现。

英特尔 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,因为它使用了不同的解析器,但结果相同。

有趣的是,我尝试在 a different HTML file 上运行您的代码并且运行良好。但它似乎仍然比 CPython 慢得多:Jython 用了 1.02-1.3 秒; CPython 花费了 0.019-0.020。

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

祝你好运!

关于python - 使用 Jython 的 BeautifulSoup,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1661310/

10-13 09:53