Преимущества 64-битной платформы Java

В версии BeautifulSoup 4 методы одинаковы; версии findAll, findAllNext, nextSibling и т. д.) были переименованы в соответствие с руководством по стилю Python , но old имена по-прежнему доступны, чтобы упростить перенос. См. Имена методов для полного списка.

В новом коде вы должны использовать нижестоящие версии, поэтому find_all и т. Д.

В вашем примере однако вы используете BeautifulSoup version 3 (прекращено с марта 2012 года, не используют , если вы можете ему помочь), где доступно только findAll(). Неизвестные имена атрибутов (например, .find_all, которые доступны только в BeautifulSoup 4) обрабатываются так, как если бы вы искали тег под этим именем. В вашем документе нет тега , поэтому для него возвращается None.

13
задан 14 October 2008 в 06:09
поделиться

8 ответов

Нет Вы ничего не должны изменять. Нет никакого свойственного преимущества, использует 64 бита. На самом деле это сделает Вашу программу больше в памяти, так как все указатели станут 64 бита шириной вместо 32 битов.

единственное преимущество прибывает, когда Вы делаете вычисления на 64 бита, например, используете партию 'longs' в Вашем коде или если Ваше приложение требует памяти больше чем 4 ГБ.

7
ответ дан pdeva 14 October 2008 в 06:09
поделиться

Да, Вы ничего не должны изменять. Это - JRE, который отличается, не код, который Вы пишете.

1
ответ дан michelemarcon 14 October 2008 в 06:09
поделиться
  • 1
    Я don' t имеют любой другой сервер TeamCity, но это - ясно ошибка – Stefano 17 August 2012 в 08:29

Вам ничего не придется изменить. В отличие от C или C++, Java записали спецификацию для него, который гарантирует, что ints (и другие типы данных) всегда являются той же длиной, неважно, какая платформа Вы идете.

3
ответ дан jjnguy 14 October 2008 в 06:09
поделиться

Моя предыдущая версия, в то время как не ложь, была быстро записанным упрощением.

Изменение от 32 до 64 битов автоматически не сделает Ваше выполнение приложения быстрее, это может в некоторых случаях привести к противоположному. На "отрицательной" стороне, Делающей разыменование указателей памяти в JVM, может занять более длительное время с указателями на 64 бита, чем 32 бита. Полное собирает "мусор", и уплотнение "кучи" на 16 ГБ, вероятно, займет более длительное время, чем с "кучей" на 2 ГБ.

На положительной стороне: Там инструкции по процессору на 64 бита, которые являются более эффективными, чем на 32 бита. JVM на 64 бита позволит Вам иметь размер "кучи" 2^32 времена, больше, чем, немного меньше, чем, 4 ГБ один, можно добраться с 32 битами. (Если можно позволить себе купить ту сумму RAM), Некоторый JVMs может работать со сжатыми ссылками, если у Вас есть размер "кучи" меньше чем 4 ГБ, давая Вам преимущество инструкций на 64 бита, не имея необходимость платить 64 бита, разыменовывающие цену.

, Если бы у Вас есть хорошая JVM, я перешел бы к 64 битам, неважно, размер "кучи", просто был бы подготовлен, что Вам, вероятно, придется получить удар производительности для того, чтобы иметь действительно большую "кучу".

13
ответ дан Tnilsson 14 October 2008 в 06:09
поделиться

Поскольку JVM, где код выполнен, должна вести себя то же (целые числа всегда - подписанные 32 бита, и т.д.), Ваш код, как гарантируют, (в теории) выполнит тождественно, неважно, какая платформа Вы выполняете его.

различие на 32/64 бита входит, как JVM в состоянии оптимизировать время выполнения. Так, в то время как выполняемый байт-код остается тем же, он мог бы (или не мог бы) быть оптимизированным по-другому.

, Короче говоря 64-разрядная система рабочий Java мог бы выполнить код быстрее, чем 32-разрядная эквивалентная система.

5
ответ дан Henrik Paul 14 October 2008 в 06:09
поделиться
  • 1
    Попробованный это, не работает также. Я получаю тот же NoSuchBeanDefinitionException – Abhishek 10 June 2011 в 08:10

Не думаю, что 64-битная JVM повысит производительность приложения? Как?

На самом деле 64-битные процессоры немного медленнее. У них более сложный конвейер декодирования (обратная поддержка 32-битных операций). Им нужна большая пропускная способность памяти (все указатели имеют двойной размер, верно?). Единственное, что у вас есть на 64-битном процессоре, - это много оперативной памяти. Как известно, размер - это скорость. Большое количество оперативной памяти может очень хорошо повысить производительность некоторых приложений (если приложение может ее использовать). Так что 64 бит - нет. Много оперативной памяти - определенно да.

Есть еще одна вещь, которую 64-битные процессоры могут делать быстрее. Атомарная запись / чтение 64-битных чисел. Если вы работаете с 64-битными числами (long в java), лучше использовать 64-битные процессоры, потому что у них есть машинные инструкции CAS для работы с такими числами.

8
ответ дан 1 December 2019 в 19:02
поделиться

Есть ли у вас какой-либо JNI в вашем код приложения? Тогда, возможно, вам стоит побеспокоиться о 32-битных или 64-битных нативных двоичных файлах.

32 или 64 - все равно для вашего кода Java. Аспекты производительности, кажется, уже хорошо освещены предыдущими плакатами.

2
ответ дан 1 December 2019 в 19:02
поделиться

Я обнаружил, что 64-битные JVM работают медленнее, чем 32-битные версии. Однако с последней версией Java 6 update 14 я видел, что многие из моих тестов немного быстрее с 64-битной версией по сравнению с 32-битной. В любом случае разница составляет всего 5–10%.

Использует ли ваша программа 32-разрядную или 64-разрядную версию, зависит от выбора используемой JVM. Как уже упоминалось, вам необходимо проверить, есть ли у вас соответствующие общие библиотеки. (или в идеале нет)

Основное отличие заключается в возможности использовать больше памяти, особенно если вам нужно 4 ГБ или больше.

0
ответ дан 1 December 2019 в 19:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: