2009-11-02 62 views
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倍。BeautifulSoup with Jython

任何人都可以确认此结果吗? 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 
+2

请张贴您的源代码。 – 2009-11-02 15:20:45

回答

6

我可以证实了类似的发现。

Intel 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。

我试着美丽汤3.0.7a,因为它使用了不同的解析器,但有同样的结果。

有趣的是,我试图在a different HTML file运行您的代码和它工作得很好。但它仍然比CPython慢​​得多:Jython耗时1.02-1.3秒; CPython花了0.019-0.020。

我没有在这一点上除了你应该考虑让jython-users名单在这个问题上的任何建议;我发现那里的社区,其中包括首席开发人员,要有响应和乐于助人。

祝你好运!

+1

我会假设大小不同,我使用的HTML大约是300K,而第二个使用的仅仅是7K。感谢您的验证。 – gooli 2009-11-03 06:39:39