Сегодня задумался над таким вопросом - если писать код на Си или Яве, то после компиляции появляется файл exe, class или еще какой-то, в котором по идее на ассемблере написан код, который будет исполнятся. В пхп запускается сам файл пхп, но ведь процессор не может понять то, что там написано, ему в любом случае нужен готовый код на ассемблере. Если кто знает по подробней как это все происходит в пхп, и можно ли вообще сделать так, что бы запускался именно уже готовый файл, скомпилированный их пхп-скрипта, не тратя драгоценное серверное время на очередную сборку скрипта, то дайте пожалуйста ссылку, где можно об этом почитать.
Заранее спасибо за ответы!
Спустя 21 минута, 36 секунд (29.10.2011 - 23:10) jetistyum написал(а):
наверное вы никогда не задавались вопросом как же оно на самом деле работает. Даже Ассемблерные коды процессор не способен понять, а способен понять только процессорные инструкции, а язык Assembler просто один из наиболее низкоуровневых языков, фактически ассемблер транслирует инструкции языка в машинные коды.
http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%...%BA%D0%BE%D0%B4
Что касается PHP, то это интерпретируемый язык, его инструкции переводятся в машинный код во время запуска, интерпретатором, и выполняются.
http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%...%BA%D0%BE%D0%B4
Что касается PHP, то это интерпретируемый язык, его инструкции переводятся в машинный код во время запуска, интерпретатором, и выполняются.
Спустя 10 минут, 52 секунды (29.10.2011 - 23:20) alex12060 написал(а):
Компьютер понимает лишь 0 и 1. Т.е. импульсы тока( 0 - нет импульса, 1 - есть ).
Так что, ассемблер, это язык программирования, с ним нельзя сравнивать
Ну а так, PHP, как описали выше, просто транлируется на лету.
Так что, ассемблер, это язык программирования, с ним нельзя сравнивать
Ну а так, PHP, как описали выше, просто транлируется на лету.
Спустя 35 минут, 50 секунд (29.10.2011 - 23:56) XCoder написал(а):
John Cena
eAccelerator, XCache, APC и т.д. позволяют хранить не сам код, а его промежуточное состояние, иными словами байт-код для виртуальной машины.
Таким образом акселераторы экономят время разбора кода интерпретатором. Более того, они несколько оптимизируют код, это положительно сказывается на потреблении памяти и времени исполнения скрипта.
Но не забывайте, что бОльшая часть времени уходит не на исполнение кода как такового и уж точно не на время интерпретации, а на операции Include(), коннекты к СУБД и прочие процессы ожидания и обращения "во вне".
Если решили оптимизировать что-то, то копайтесь в архитектуре системы в первую очередь.
Ваш скрипт (интерпретирование/транслирование) -> PHP байт-код (интерпретирование/транслирование) -> машинные инструкции -> CPU (Profit) =)
eAccelerator, XCache, APC и т.д. позволяют хранить не сам код, а его промежуточное состояние, иными словами байт-код для виртуальной машины.
Таким образом акселераторы экономят время разбора кода интерпретатором. Более того, они несколько оптимизируют код, это положительно сказывается на потреблении памяти и времени исполнения скрипта.
Но не забывайте, что бОльшая часть времени уходит не на исполнение кода как такового и уж точно не на время интерпретации, а на операции Include(), коннекты к СУБД и прочие процессы ожидания и обращения "во вне".
Если решили оптимизировать что-то, то копайтесь в архитектуре системы в первую очередь.