Действительно ли компиляция кода быстрее, чем интерпретация кода?

Во-первых, я хочу, чтобы вы проверили лучший ответ здесь.

Компилируемые и интерпретируемые языки

Как видите, компилируемые языки работают быстрее. Однако я знаю наверняка, что компиляторы берут весь исходный код, компилируют его в машинный код, а затем выполняют. Интерпретатор принимает по одному оператору за раз, транслирует его в машинный код или код виртуальной машины, а затем немедленно выполняет его. Таким образом, мы получаем вывод на лету, во время выполнения.

Тогда разве интерпретируемые языки не быстрее компилируемых языков?


person Haggra    schedule 02.05.2015    source источник
comment
Как этот вывод следует из его предпосылки?   -  person harold    schedule 02.05.2015
comment
Компиляция — это однократное действие, которое не учитывается во времени выполнения, потому что вам не нужно компилировать каждый раз при запуске.   -  person RaGe    schedule 02.05.2015
comment
Компилятор не выполняет код после компиляции. Он просто генерирует двоичный файл, который можно запускать снова и снова.   -  person Mark Rotteveel    schedule 02.05.2015
comment
#RaGe #Mark Rotteveel Например, если мы запустим приложение Java, будет ли оно каждый раз интерпретировать весь код?   -  person Haggra    schedule 02.05.2015
comment
из байткода, да. посмотреть как раз вовремя   -  person RaGe    schedule 02.05.2015
comment
Да, вы правы, бывают случаи, когда прямая интерпретация ad hoc намного быстрее, чем компиляция + выполнение. Если ваш код запускается только один раз и не содержит длинных циклов, интерпретация имеет смысл. Это относится к командным языкам (оболочкам и т. д.), коммуникационным протоколам и т. д.   -  person SK-logic    schedule 05.05.2015


Ответы (1)


Вы пытаетесь сравнить "Code Compiling" с "Code Interpreting"

«Компиляция кода» не выполняет код, а только создает двоичный или независимый от платформы код, который можно запускать снова и снова без необходимости повторной компиляции или с минимальной компиляцией, которая имеет гораздо меньшие накладные расходы, чем интерпретация как в Java

«Интерпретация кода» — компилирует код построчно в памяти и выполняет его «на лету».

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

person adnan kamili    schedule 02.05.2015