В версии BeautifulSoup 4 методы одинаковы; версии findAll
, findAllNext
, nextSibling
и т. д.) были переименованы в соответствие с руководством по стилю Python , но old имена по-прежнему доступны, чтобы упростить перенос. См. Имена методов для полного списка.
В новом коде вы должны использовать нижестоящие версии, поэтому find_all
и т. Д.
В вашем примере однако вы используете BeautifulSoup version 3 (прекращено с марта 2012 года, не используют , если вы можете ему помочь), где доступно только findAll()
. Неизвестные имена атрибутов (например, .find_all
, которые доступны только в BeautifulSoup 4) обрабатываются так, как если бы вы искали тег под этим именем. В вашем документе нет тега
, поэтому для него возвращается None
.
Нет Вы ничего не должны изменять. Нет никакого свойственного преимущества, использует 64 бита. На самом деле это сделает Вашу программу больше в памяти, так как все указатели станут 64 бита шириной вместо 32 битов.
единственное преимущество прибывает, когда Вы делаете вычисления на 64 бита, например, используете партию 'longs' в Вашем коде или если Ваше приложение требует памяти больше чем 4 ГБ.
Да, Вы ничего не должны изменять. Это - JRE, который отличается, не код, который Вы пишете.
Вам ничего не придется изменить. В отличие от C или C++, Java записали спецификацию для него, который гарантирует, что ints (и другие типы данных) всегда являются той же длиной, неважно, какая платформа Вы идете.
classpath*:
может быть найдено здесь: static.springsource.org/spring/docs/current/…
– Luke
8 April 2013 в 17:44
Моя предыдущая версия, в то время как не ложь, была быстро записанным упрощением.
Изменение от 32 до 64 битов автоматически не сделает Ваше выполнение приложения быстрее, это может в некоторых случаях привести к противоположному. На "отрицательной" стороне, Делающей разыменование указателей памяти в JVM, может занять более длительное время с указателями на 64 бита, чем 32 бита. Полное собирает "мусор", и уплотнение "кучи" на 16 ГБ, вероятно, займет более длительное время, чем с "кучей" на 2 ГБ.
На положительной стороне: Там инструкции по процессору на 64 бита, которые являются более эффективными, чем на 32 бита. JVM на 64 бита позволит Вам иметь размер "кучи" 2^32 времена, больше, чем, немного меньше, чем, 4 ГБ один, можно добраться с 32 битами. (Если можно позволить себе купить ту сумму RAM), Некоторый JVMs может работать со сжатыми ссылками, если у Вас есть размер "кучи" меньше чем 4 ГБ, давая Вам преимущество инструкций на 64 бита, не имея необходимость платить 64 бита, разыменовывающие цену.
, Если бы у Вас есть хорошая JVM, я перешел бы к 64 битам, неважно, размер "кучи", просто был бы подготовлен, что Вам, вероятно, придется получить удар производительности для того, чтобы иметь действительно большую "кучу".
Поскольку JVM, где код выполнен, должна вести себя то же (целые числа всегда - подписанные 32 бита, и т.д.), Ваш код, как гарантируют, (в теории) выполнит тождественно, неважно, какая платформа Вы выполняете его.
различие на 32/64 бита входит, как JVM в состоянии оптимизировать время выполнения. Так, в то время как выполняемый байт-код остается тем же, он мог бы (или не мог бы) быть оптимизированным по-другому.
, Короче говоря 64-разрядная система рабочий Java мог бы выполнить код быстрее, чем 32-разрядная эквивалентная система.
Не думаю, что 64-битная JVM повысит производительность приложения? Как?
На самом деле 64-битные процессоры немного медленнее. У них более сложный конвейер декодирования (обратная поддержка 32-битных операций). Им нужна большая пропускная способность памяти (все указатели имеют двойной размер, верно?). Единственное, что у вас есть на 64-битном процессоре, - это много оперативной памяти. Как известно, размер - это скорость. Большое количество оперативной памяти может очень хорошо повысить производительность некоторых приложений (если приложение может ее использовать). Так что 64 бит - нет. Много оперативной памяти - определенно да.
Есть еще одна вещь, которую 64-битные процессоры могут делать быстрее. Атомарная запись / чтение 64-битных чисел. Если вы работаете с 64-битными числами (long в java), лучше использовать 64-битные процессоры, потому что у них есть машинные инструкции CAS для работы с такими числами.
Есть ли у вас какой-либо JNI в вашем код приложения? Тогда, возможно, вам стоит побеспокоиться о 32-битных или 64-битных нативных двоичных файлах.
32 или 64 - все равно для вашего кода Java. Аспекты производительности, кажется, уже хорошо освещены предыдущими плакатами.
Я обнаружил, что 64-битные JVM работают медленнее, чем 32-битные версии. Однако с последней версией Java 6 update 14 я видел, что многие из моих тестов немного быстрее с 64-битной версией по сравнению с 32-битной. В любом случае разница составляет всего 5–10%.
Использует ли ваша программа 32-разрядную или 64-разрядную версию, зависит от выбора используемой JVM. Как уже упоминалось, вам необходимо проверить, есть ли у вас соответствующие общие библиотеки. (или в идеале нет)
Основное отличие заключается в возможности использовать больше памяти, особенно если вам нужно 4 ГБ или больше.