BeautifulSoup с Jython - PullRequest
       10

BeautifulSoup с Jython

4 голосов
/ 02 ноября 2009

Я просто попытался запустить BeautifulSoup (3.1.0.1) с Jython (2.5.1), и я был поражен, увидев, насколько он медленнее, чем CPython. Анализ страницы (http://www.fixprotocol.org/specifications/fields/5000-5999) с CPython занял чуть меньше секунды (точнее 0,844 секунды). С Jython это заняло 564 секунды - почти в 700 раз больше.

Кто-нибудь может подтвердить этот результат? Jython кажется неоправданным, чтобы работать в 700 раз медленнее, чем CPython. Возможно, что-то не так с моей настройкой.

[Edit] Вот код, который я использовал для проверки этого (естественно, я скачал вышеупомянутый HTML-файл):

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

1 Ответ

6 голосов
/ 03 ноября 2009

Я могу подтвердить подобные выводы.

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. Он также использует много процессора.

Я попробовал Beautiful Soup 3.0.7a, потому что он использует другой парсер, но имеет те же результаты.

Интересно, я попытался запустить ваш код на другом HTML-файле , и он работал нормально. Но он все еще казался намного медленнее, чем CPython: Jython занял 1,02–1,3 секунды; CPython занял 0,019–0,020.

На данный момент у меня нет никаких предложений, за исключением того, что вы должны рассмотреть вопрос об этом в списке jython-users ; Я обнаружил, что сообщество, в которое входит ведущий разработчик, отзывчиво и полезно.

Удачи!

...