PHP có máy ảo như Java không?PHP có máy ảo như Java không?
Trả lời
Có.
Độc lập với nền tảng PHP đang chạy, các tập lệnh được biên dịch thành cùng một bytecode và được chạy bởi Công cụ Zend.
Sự khác biệt từ Java là mã được biên dịch này thường không được lưu trữ thành các tệp riêng biệt và các tập lệnh được biên dịch lại trên mỗi lần thực thi (tuy nhiên, xem bộ đệm mã hóa).
Sự khác biệt về khái niệm của chúng giữa Công cụ Zend và JVM? –
@Chris Đó là câu hỏi rất mơ hồ và tôi không đủ triển khai JVM để thậm chí phác thảo một câu trả lời. – Artefacto
Điều đó là công bằng. Cảm ơn bạn. –
Một khác biệt quan trọng giữa Engine Zend và một JVM điển hình là trong cách họ thực hiện bytecode:
- Engine Zend thực thi (diễn giải) các bytecode biên dịch trực tiếp. (Ít nhất đó là điều tôi nghĩ sẽ xảy ra. Tôi không thể xác nhận điều này từ tài liệu trực tuyến của Zend!)
- Một JVM thường sẽ sử dụng trình biên dịch JIT để biên dịch bytecode thành chỉ dẫn gốc và sau đó thực hiện các hướng dẫn gốc.
Thực tế, hành vi JVM phức tạp hơn điều này. Các JVM không phải lúc nào cũng biên dịch thành mã gốc, và khi chúng thực hiện, chúng thường trì hoãn việc biên dịch JIT cho đến khi chúng thấy nó đáng làm. Trước đó, chúng thực thi trực tiếp các bytecode.
Nhìn vào mã nguồn cho Zend cho thấy rằng nó thực sự giải thích bytecode trực tiếp, thay vì chuyển đổi nó thành native. Và mã cũng không đẹp ... – siride
Tôi đã có nhiều "những gì các bleep" -moments khi bước qua mã nguồn php nhưng thẳng thắn các yếu tố vm của động cơ zend không nằm trong số đó. So với các ngôn ngữ khác ... tốt, hầu hết trong số họ là như thế này. – VolkerK
- 1. không thể tạo máy ảo java
- 2. Máy ảo Java không nhận dạng -XX: G1YoungGenSize?
- 3. Android-Studio: Lỗi: Không thể tạo Máy ảo Java
- 4. Có máy ảo Dart nào không?
- 5. Máy ảo Java không yêu cầu hệ điều hành?
- 6. lỗi máy ảo java launcher: không thể truy cập jarfile
- 7. Máy ảo Java có di chuyển các đối tượng trong bộ nhớ và nếu như vậy - như thế nào?
- 8. error_log trên Máy chủ ảo?
- 9. máy ảo
- 10. Cách giải quyết không thể tạo ra lỗi máy ảo của Trình khởi chạy máy ảo Java?
- 11. Có máy quét ảo Twain không? Sắp xếp giống như Daemon Tools virtual CD
- 12. MacOSX Snow Leopard và Eclipse: Lỗi khi khởi động Eclipse (Không có máy ảo Java ....)
- 13. Máy ảo Java có thực sự là một máy ảo có cùng nghĩa với tệp VMWare hoặc Parallels của tôi không?
- 14. PHP - một open_basedir khác nhau cho mỗi máy chủ ảo
- 15. Có khả thi để ảo hóa máy phát triển không?
- 16. Ruby có phải là nền tảng chéo như Java không?
- 17. Danh sách Clojure Tương thích máy ảo Java
- 18. Bạn có thể sao chép một máy ảo xanh không?
- 19. Chuyển máy ảo Java của Android sang iPhone?
- 20. Xử lý tín hiệu trong Máy ảo Java
- 21. Có nghĩa là gì khi có một máy ảo Java chia hai?
- 22. Máy Mac ảo?
- 23. Java - Phương pháp ảo
- 24. Truy cập máy chủ ảo ảo (Miền phụ) với máy tính khác nhau trên mạng LAN
- 25. Máy ảo Java: SIGSEGV có thể tái tạo trên cả 1.6.0_17 và 1.6.0_18, cách báo cáo?
- 26. Các phương pháp không ảo trong Java
- 27. Perl có biến động như PHP không?
- 28. Symfony 2 trên máy ảo
- 29. Kết nối mạng ảo của máy ảo Azure
- 30. Maven 2.1.0 không chuyển các thuộc tính hệ thống sang máy ảo Java
PHP có máy ảo không? Chắc chắn, nó có thể. Giống như JVM? Thậm chí không gần. –
Bây giờ có một máy ảo rất giống với JVM. Xem: https://github.com/Facebook/hiphop-php/wiki –