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