2009-11-02 33 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