【Java面试宝典】JavaSE_2.1_Java基础● 请你说说Java和PHP的区别?

本文探讨了PHP 8引入JIT编译器的背景和原因,解释了JIT如何提升PHP在CPU密集型任务中的性能。尽管JIT在I/O密集型应用中的提升不明显,但在数学计算等领域会有显著效果。文章还指出,PHP的性能优化已接近极限,JIT是进一步提升性能的关键。同时,文章对比了PHP和Java在Web开发中的不同,如PHP的单进程HTTP服务器、多进程架构、以及在数据库访问和并发处理上的特点。
摘要由CSDN通过智能技术生成


本文分成3部分:
①PHP 和 Java 的主要区别有哪些? - eechen的回答 - 知乎
https://www.zhihu.com/question/20377398/answer/141328982

② h4cd 发布于 2019年04月01日-开源中国
https://www.oschina.net/news/105566/php-8-will-support-jit

③乔·沃特金斯-Musings, ninja ones-思考,忍者
Saturday, 30 March 2019
PHP GR8
https://blog.krakjoe.ninja/2019/10/
在这里插入图片描述

①eechen的回答 - 知乎

PHP暂时还不支持像Java那样JIT运行时编译热点代码,
(但PH8确认将其引入:PHP 8 中是否会支持 JIT(Just-In-Time)即时编译执行功能,最新消息是官方已经确认将其引入。)
但是PHP具有opcache机制,能够把脚本对应的opcode缓存在内存,
PHP7中还支持配置opcache.file_cache导出opcode到文件.
第三方的Facebook HHVM也支持JIT.
另外PHP官方基于LLVM围绕opcache机制构建的Zend JIT分支也正在开发测试中.
在php-src/Zend/bench.php测试显示,PHP JIT分支速度是PHP 5.4的10倍.

https://github.com/zendtech/php-src/tree/zend-jit/ext/opcache/jit
https://www.phpclasses.org/blog/post/493-php-performance-evolution.html
在这里插入图片描述

PHP的库函数用C实现,而Java核心运行时类库(jdk/jre/lib/rt.jar,大于60MB)用Java编写(jdk/src.zip), 所以Java应用运行的时候,用户编写的代码以及引用的类库和框架都要在JVM上解释执行. Java的HotSpot机制,直到有方法被执行10000次(-XX:CompileThreshold=10000)才会触发JIT编译, 在此之前运行在解释模式下,以避免出现JIT编译花费的时间比方法解释执行消耗的时间还要多的情况.

PHP内置模板引擎,自身就是模板语言.而Java Web需要使用JSP容器如Tomcat或第三方模板引擎.

PHP内置HTTP服务器和SQLite数据库,以及Apache模块实现libphp.so和FastCGI服务PHP-FPM.而Java Web开发时普遍需要使用第三方的Servlet容器Tomcat等.

PHP内置的单进程HTTP服务器(可用于快速开发和测试):
php -S 127.0.0.1:8080 -t /www

PHP-FPM跟Nginx一样,是多进程的架构,worker进程处理请求,master进程不处理请求,只负责维护worker进程,比如定量重启,崩溃重启等.PHP-FPM支持进程池的特性,不同进程池相互隔离,互不影响.比如你可以配置一个监听9000端口的进程池www和一个监听9001的进程池io来分离IO密集脚本:

nginx.conf: 访问io.php的请求都交给监听9001的PHP-FPM进程池处理
location = /io.php {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9001;
fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root documentrootfastcgi_script_name;
}
php-fpm: 正常脚本由静态www池处理,阻塞脚本由动态io池处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值