1. 文档阅读
PHP: Hypertext Preprocessor
PHP 8 确认支持 JIT - OSCHINA - 中文开源技术交流社区
PHP的性能演进(从PHP5.0到PHP7.1的性能全评测) - 风雪之隅 //php8有望在2020年发布 | 海墨
JIT被批准用于PHP 8,以提高CPU性能_Linux新闻_Linux公社-Linux系统门户网站 // JIT被批准用于PHP 8,以提高CPU性能
PHP 8.0 正式版发布,这是你没有学过的全新版本!JIT 计算性能提升巨大,原生注解属性助力!_哔哩哔哩_bilibili
PHP 8.0 - window 10下[含Docker方式]安装 - 学习/实践_穿素白衫的少年的博客-CSDN博客_php8 windows
【宇润】4-PHP8 FFI、JIT和Go的计算性能大战-PHP转Go语言之前你得先了解这些_哔哩哔哩_bilibili
2.整理输出
2.1 介绍
官网: PHP: Hypertext Preprocessor
源代码: Index of /~pollita // alpha 1 测试版本
key word: php 加入jit
------------------------------------------------------- 我是分割线 ----------------------------------------------------
2020.11.27 php 8.0 正式发布
1. PHP: PHP 8.0.0 Release Announcement // 简要介绍
2.2 上机体验
环境准备:
docker
1.通过docker, 在容器中体验php 8.0
打开docker hub 搜索 php 8.0-cli
Docker Hub
我们使用的是:最后一个结果项---
点击复制图标: docker pull php:8.0-cli
2.打开vscode, 及准备好的项目目录
打开控制台, 粘贴复制的文本: docker pull php:8.0-cli
拉取php-8.0镜像, 等待镜像拉取完毕.
插入:
mac 下
3.运行镜像, 即实例化容器
打开docker desktop 客户端, 选择 images-->local, 可以看到出现我们刚刚拉取的php 8.0-cli镜像 ---> 点击后面的 [RUN] 按钮
windows下
mac下
4.点击run, 配置-->映射目录
插入: // 20201217 第二天
1. 建议映射目录, 不要直接将D:/直接都映射到docker容器中, 只需要其中某个目录即可.
这里是: D:\wamp\projects-learning --> /mnt/d/
2. 其中/mnt/d/ 建议使用反斜线, 否则可能会挂载目录失败.
3. 如果是mac下,路径正常配置即可
再次, 点击 Run, 出现如下界面
插入:
mac下 // 可以看到使用PHP的版本以及来源
5.打开vscode,控制台-->输入: docker exec -it php-8.0 /bin/bash
进入php-8.0容器中,
然后, 进入指定的项目目录下,
查看php版本:
php -v
接着, 再执行下main.php
初步看, 一切正常.
接下来, 开始一个一个体验php8的新特性.
6.体验新特性
1. 打开: PHP For Windows: Binaries and sources Releases
有详细的代码实例
PHP: PHP 8.0.0 Release Announcement
PHP: PHP 8.1.0 Release Announcement
one by one to experience.
2. 代码参见:
GitHub - ningxiaofa/php-8.0-learning-and-testing: Learing and testing PHP 8.0
3. 目录结构:
4. 测试环境:
// Docker:
// CPUs: 2
// Memory: 4.00 GB
// Swap: 1 GB
// 分别使用PHP镜像如下:
// 8.0-cli
// 7.4-cli
// 5.6-cli
// 运行容器测试:
5. 其中, 关于性能比较的测试
// 冒泡排序: range(1, 1000);
// PHP 8 with jit:
// 执行命令: php -dopcache.enable_cli=on -dopcache.jit=1205 -dopcache.jit_buffer_size=64M compute.php
// float(0.7394640445709229)
// float(0.7135009765625)
// float(0.7007088661193848)
// avg_time: 0.7179s
// PHP 8 without jit:
// 执行命令: php compute.php
// float(2.2466330528259277)
// float(2.279315948486328)
// float(2.2002217769622803)
// avg_time: 2.2420s
// PHP 7.4
// float(2.3808090686798)
// float(2.4190850257874)
// float(2.4786019325256)
// avg_time: 2.4261s
// PHP 5.6
// float(19.611121892929)
// float(19.957134008408)
// float(19.330636024475)
// avg_time: 19.6329.s
// 调整 CPUs为 4, 其他不变, 输出结果:
// 8.0 with jit
// float(0.7168970108032227)
// float(0.7139320373535156)
// float(0.6942658424377441
// avg_time: 0.7084s
// 8.0 without jit
// float(2.1809449195861816)
// float(2.258208990097046)
// float(2.3160738945007324)
// avg_time: 2.2517s
// 7.4
// float(2.2731828689575)
// float(2.2631080150604)
// float(2.3577010631561)
// avg_time: 2.2980s
// 5.6
// float(19.071826934814)
// float(19.167896032333)
// float(19.43839597702)
// avg_time: 19.2260s
// 性能结论:
// 1. PHP 8 with jit 是 PHP 8 without jit 的3倍作用性能
// 2. PHP 5.6 >> PHP 7.4 >> PHP 8 without jit >> PHP 8 with jit, 在计算密集型场景下, 性能提升是很明显的.
// 3. 在上面的计算量内, 增加 CPUs, 对 PHP 8几乎无影响, 对其他版本有少许影响, 性能有所提升. Note: 因为前者计算过程中, cpu使用率并未到100%, 后者则超过了100%, cpus一定程度上对其有所限制.
// 4. 典型场景下, 并未测试, 性能请参考官方文档.
附上:
...
另外:
PHP 8.0 - window 10下[含Docker方式]安装 - 学习/实践_穿素白衫的少年的博客-CSDN博客_php8 windows
3. 思考总结
语言最终不过是工具而已, 有时候不应该使用语言将自己隔离起来, 而应该追寻共通的东西, 但是这些却又是建立在熟悉语言的基础上, 所以, 工具还是要熟悉, 熟练使用工具, 可以高效快速地完成工作需求, 从而节省时间, 去做其他的事情, 不是挺好的吗?!
后续补充
...
|