Есть ли у PHP виртуальная машина, например Java?Имеет ли PHP виртуальную машину, такую как Java?
ответ
Да.
Независимо от платформы PHP работает, скрипты скомпилированы в один и тот же байт-код и запускаются Zend Engine.
Отличие от Java заключается в том, что этот скомпилированный код обычно не хранится в отдельных файлах, и скрипты перекомпилируются при каждом выполнении (однако, см. Кэши операций операций).
Являются ли их концептуальные различия между Zend Engine и JVM? –
@Chris Этот вопрос очень расплывчатый, и мне не хватает реализаций JVM, чтобы даже набросать ответ. – Artefacto
Это справедливо. Спасибо. –
Еще одно важное различие между Zend Engine и типичной виртуальной машины Java в том, как они выполнить байткоды:
- Движок Zend выполняет (интерпретирует) скомпилированные байткоды непосредственно. (По крайней мере, это то, что, я думаю, происходит. Я не смог подтвердить это из онлайн-документации Zend!)
- JVM обычно использует компилятор JIT для компиляции байт-кодов в собственные инструкции и выполнения собственных инструкций.
На самом деле поведение JVM более сложное, чем это. JVM не всегда компилируются в собственный код, и когда они это делают, они обычно задерживают компиляцию JIT, пока не считают, что это стоит того. До этого они запускают байткоды напрямую.
Глядя на исходный код для Zend, он показывает, что он действительно интерпретирует байт-код напрямую, а не преобразует его в native. И код тоже не очень ... – siride
У меня было много «каких звуков», когда вы переходите через исходный код php, но, честно говоря, элементы vm zend-движка не входят в число этих. По сравнению с другими языками ... ну, большинство из них вот так. – VolkerK
- 1. Имеет ли Hyperledger Fabric виртуальную машину?
- 2. Как написать мою собственную виртуальную машину, такую как VirtualBox?
- 3. Как отключить виртуальную машину?
- 4. Как написать виртуальную машину
- 5. Matlab R2012B Как отключить виртуальную машину Java?
- 6. Заставляет виртуальную машину Java запускать сборщик мусора
- 7. Не удалось создать виртуальную машину Java
- 8. Как обнаружить безответную виртуальную машину?
- 9. Как переименовать виртуальную машину SharePoint
- 10. PyvMomi создать новую виртуальную машину
- 11. Ошибка: Не удалось создать виртуальную машину Java
- 12. Eclipse Не удалось создать виртуальную машину Java
- 13. Что значит иметь разветвленную виртуальную машину Java?
- 14. Не удалось создать виртуальную машину Java
- 15. Ошибка: не удалось создать виртуальную машину Java
- 16. не удалось создать виртуальную машину Java
- 17. Можем ли мы написать виртуальную машину Java на любом языке?
- 18. Bluetooth не включает виртуальную виртуальную машину VM
- 19. Можете ли вы воспроизвести лазурную виртуальную машину?
- 20. Как сопоставить виртуальную машину с внутренней сетью?
- 21. Ssh в другую виртуальную машину
- 22. Как указать виртуальную машину Java в качестве аргументов VM
- 23. Как найти процесс, который убил запущенную Java-виртуальную машину
- 24. Невозможно запустить остановленную виртуальную машину
- 25. Удалить и воссоздать виртуальную машину в Azure
- 26. Ошибка: не удалось создать виртуальную машину Java: Android Studio
- 27. Vagrant не находит виртуальную машину
- 28. Как изменить виртуальную виртуальную машину, к которой подключен Docker?
- 29. Как эффективно использовать виртуальную виртуальную машину на нескольких компьютерах?
- 30. Как заставить виртуальную машину Xen запускать программу
Есть ли у PHP виртуальная машина? Конечно, это возможно. Как JVM? Даже не близко. –
Теперь есть виртуальная машина, очень похожая на JVM. Смотрите: https://github.com/Facebook/hiphop-php/wiki –