Какова была цель виртуальной машины Java для запуска java на архитектурах, когда портирование JVM было необходимо в любом случае? - PullRequest
0 голосов
/ 23 марта 2019

Я пытаюсь проанализировать природу портирования и виртуальных машин с намерением минимизировать количество портирования.

Оглядываясь назад, я вспоминаю одну вещь, однако,Виртуальная машина Java, то есть SDK / JRE, хотя она способна динамически обрабатывать Java-классы и / или компилировать исходный код Java, по сути является промежуточным программным обеспечением, не так ли?Я думаю, что люди в Oracle перекомпилируют его для разных операционных систем, чтобы язык Java был полезен для каждой соответствующей операционной системы.

Итак, все это подводит меня к моему выше сформулированному вопросу: «Зачем устанавливатьВиртуальная машина Java, когда сама Java может существовать как еще один язык и переноситься на другие архитектуры без необходимости переноса промежуточного программного обеспечения (т.е. промежуточного программного обеспечения в данном случае - JVM)? "

Это всего лишь предположение,но будет ли это потому, что JVM спроектирована так, чтобы иметь минимальные требования к портированию между архитектурами, и, таким образом, изменение существующего Java между архитектурами требует меньше работы?Спасибо.

1 Ответ

0 голосов
/ 25 марта 2019

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

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

...