2015-09-27 3 views
0

Я не знаю, есть ли прямой ответ на этот вопрос. Я имею спецификации различных типов CPU. Например, два экземпляра: A и B. Я хочу запустить какое-то простое консольное приложение Java в A и B. Исходя из их спецификаций, могу ли я предположить время выполнения B, зная время выполнения на A?Производительность JVM на основе типа CPU

Вторые вопросы касаются основных номеров. Итак, могу ли я предположить время выполнения машины с i ядрами, зная результат на той же машине с j ядрами?

Есть ли какие-то приближения? Я имею в виду экземпляры Amazon EMR.

спасибо.

ответ

3

Основываясь на своих спецификациях, могу ли я [оценить] время выполнения B, зная время выполнения на A?

Ответ Нет. Или, по крайней мере, с какой-либо точностью или уверенностью. Производительность приложения часто зависит от сложных взаимодействий между шаблонами доступа к памяти алгоритма, кэшами памяти и аппаратными средствами виртуальной памяти. Это невозможно предсказать, если вы рассматриваете приложение как черный ящик, и их может быть сложно моделировать, даже если вы понимаете, что он делает. GC также может иметь такое же непредсказуемое поведение.

Могу ли я [оценить] время работы машины с i ядрами, зная результат на той же машине с j ядрами?

Ответ №. Производительность приложения при увеличении количества ядер зависит от того, как вы разработали и внедрили приложение. В лучшем случае вы можете добиться линейного ускорения ... вплоть до предела системы памяти платформы. В худшем случае вы не можете получить ускорение вообще.


Единственное практическое решение сделать глазок ... затем опробовать различные альтернативные платформы и посмотреть, как приложение выполняет на них.

0

Я не знаю, есть ли прямой ответ на этот вопрос. Я имею спецификации различных типов CPU. Например, два экземпляра: A и B. Я хочу запустить какое-то простое консольное приложение java в A и B. Исходя из их спецификаций, могу ли я предположить время выполнения B, зная время выполнения на A?

Вы можете оценить его, посмотрев на относительную производительность с помощью теста, такого как PassMark. Однако вы можете видеть случаи, когда система, которая должна быть быстрее, на самом деле медленнее. Это очень приблизительная оценка.

Вторые вопросы касаются основных номеров. Итак, могу ли я предположить время выполнения машины с i ядрами, зная результат на той же машине с j ядрами?

Это маловероятно, что вы говорите, что у вас удвоено количество ядер, вы получите вдвое больше производительности.

  • Ваше приложение не может масштабироваться по количеству ядер, так как ваше узкое место может быть другим ресурсом, например. сети или диска, или ваша программа имеет слишком много последовательного кодирования.
  • Когда у вас больше ядер, скорость этих сердечников имеет тенденцию быть медленнее на устойчивой основе, потому что сокеты могут производить столько тепла.

Есть ли какие-то приближения? Я имею в виду экземпляры Amazon EMR.

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

Смежные вопросы