Java: Как VM обрабатывает 64 бита 'длиной' в процессор на 32 бита

Это невозможно с Route53, поскольку это служба доменных имен (DNS), а не служба маршрутизации путей. Это одна из особенностей CloudFront.

9
задан Ande TURNER 19 November 2008 в 00:16
поделиться

2 ответа

Это может использовать несколько ядер для выполнения различных потоков, но это не использует их параллельно для вычислений на 64 бита. 64 бита длиной в основном хранится как два 32 бита ints. Для добавления их два дополнения необходимы, отслеживание переноса укусило. Умножение отчасти похоже на умножение двух двузначных чисел, кроме каждой цифры находится в основе 2^32 вместо основы 10. Таким образом на для других арифметических операций.

Редактирование о скорости: Я могу только предположить о различии в скорости. Дополнение требует два, добавляет вместо одного, и умножение было бы (я думать), требуют четыре, умножается вместо одного. Однако я подозреваю, что, если бы все может быть сохранено в регистрах затем, фактическое время для вычисления затмилось бы, к тому времени, когда требуется для движения в память дважды для чтения и дважды для записи, таким образом, мое предположение о дважды, как жаждут большинства операций. Я предполагаю, что это зависело бы от процессора, конкретной реализации JVM, фазы луны, и т.д. Если Вы не делаете тяжелое перемалывание чисел, я не волновался бы об этом. Большинство программ проводит большую часть своего времени, ожидая IO к/от диску или сети.

8
ответ дан 4 December 2019 в 15:28
поделиться

От TalkingTree и Java HotSpot FAQ:

Обычно преимущества способности обратиться к большим объемам памяти идут с маленькой потерей производительности в 64-разрядном VMs по сравнению с запуском того же приложения на 32-разрядном VM. Это - то, вследствие того, что каждый собственный указатель в системе поднимает 8 байтов вместо 4. Загрузка этих дополнительных данных оказывает влияние на использование памяти, которое переводит в немного более медленное выполнение в зависимости от того, сколько указателей загружается во время осуществления Вашей программы Java.
Хорошие новости - то, что с AMD64 и платформами EM64T, работающими в 64-разрядном режиме, Java, VM получает некоторые дополнительные регистры, которые она может использовать для генерации более эффективных собственных последовательностей инструкции. Эти дополнительные регистры увеличивают производительность до такой степени, когда часто нет никакой потери производительности вообще при сравнении 32 к 64-разрядной скорости выполнения.

Различие в производительности, сравнивающее приложение, работающее на 64-разрядной платформе по сравнению с 32-разрядной платформой на SPARC, находится на порядке 10-20%-й неисправности, когда Вы перемещаетесь в 64-разрядный VM. На AMD64 и платформах EM64T работает это различие диапазоны от 0-15% в зависимости от суммы указателя, получающего доступ к Вашему приложению.

5
ответ дан 4 December 2019 в 15:28
поделиться
Другие вопросы по тегам:

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