1.应用场景

了解关注体验最新PHP 8的版本特性,以便在项目中使用。

2.学习/操作

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. 思考总结

语言最终不过是工具而已, 有时候不应该使用语言将自己隔离起来, 而应该追寻共通的东西, 但是这些却又是建立在熟悉语言的基础上, 所以, 工具还是要熟悉, 熟练使用工具, 可以高效快速地完成工作需求,  从而节省时间, 去做其他的事情, 不是挺好的吗?!

后续补充

...

3.问题/补充

1.解决vscode 中vscode报的语法错误.

解决之前:

解决办法:

将C:\Users\williamning\AppData\Roaming\Code\User\settings.json文件中, php的 php.validate.executablePath 改为 php 8.0 的执行路径即可, 如下:

改为下面:

修改完之后:

正常解决~~

Note:

这里如果vscode中安装了插件, 如: PHP Intelephense  // 一个为 php语法 提供智能提示的插件, 样式很好看, 如下:

但该插件处于启动状态, 则会报警告, 如下:

解决办法:

将其禁用, 或者无视警告 [暂时面临一个选择]. 应该是因为该插件还未支持 php 8.0语法.

相信要不了多久, 插件就会升级支持.

这里, 个人还是选择暂时先将其禁用, 因为其他文件中报的问题太多~~~ 有些不忍直视.

PHP 8 - 学习/实践相关推荐

  1. 安装gym库_强化学习Gym库学习实践(一)

    最近看了一篇研究方向相关的文章,介绍了一种DQN的应用,感觉还挺新鲜的.想着把这篇文章复现出来,就开始学习强化学习的相关知识,作为一名小白,这一路走的可是真的十分艰难(我太菜了啊!) 看了莫烦Pyth ...

  2. 人工智能最佳学习实践

    人工智能是什么? 这不是一个容易回答的问题,因为他还处于发展阶段,没有成熟的理论体系. 回想下人类经历过的技术革 命.我们人类采用科学方法论(scientific method) (观察,假设,实验, ...

  3. 系列 《使用sklearn进行集成学习——理论》 《使用sklearn进行集成学习——实践》 目录 1 Random Forest和Gradient Tree Boosting参数详解 2 如何调参?

    系列 <使用sklearn进行集成学习--理论> <使用sklearn进行集成学习--实践> 目录 1 Random Forest和Gradient Tree Boosting ...

  4. DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文)、CNN优化技术、调参学习实践、CNN经典结构及其演化、案例应用之详细攻略

    DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文).CNN优化技术.调参学习实践.CNN经典结构.案例应用之详细攻略 目录 卷积神经网络算法的简介 0.Biologically Ins ...

  5. 【赠书】掌握人工智能重要主题,深度强化学习实践书籍推荐

    ‍‍ 今天要给大家介绍的书是深度强化学习实践的第二版,本书的主题是强化学习(Reinforcement Learning,RL),它是机器学习(Machine Learning,ML)的一个分支,强调 ...

  6. CVer入门必备:计算机视觉的深度学习实践

    <计算机视觉的深度学习实践>  原价     ¥ 899.00 现超 300人报名 已至底价     ¥ 399.00  >>  点击文末阅读原文参团  << 参团 ...

  7. 【Python爬虫学习实践】基于BeautifulSoup的网站解析及数据可视化

    在上一次的学习实践中,我们以Tencent职位信息网站为例,介绍了在爬虫中如何分析待解析的网站结构,同时也说明了利用Xpath和lxml解析网站的一般化流程.在本节的实践中,我们将以中国天气网为例,并 ...

  8. 深度学习实践:计算机视觉_深度学习与传统计算机视觉技术:您应该选择哪个?

    深度学习实践:计算机视觉 计算机视觉 (Computer Vision) Deep Learning(DL) is undeniably one of the most popular tools u ...

  9. .NET Core on K8S学习实践系列文章索引(持续更新)

    近期在学习Kubernetes,基于之前做笔记的习惯,已经写了一部分文章,因此给自己立一个2019年的flag:完成这个<.NET Core on K8S学习实践>系列文章!这个系列会持续 ...

  10. PyTorch深度学习实践

    根据学习情况随时更新. 2020.08.14更新完成. 参考课程-刘二大人<PyTorch深度学习实践> 文章目录 (一)课程概述 (二)线性模型 (三)梯度下降算法 (四)反向传播 (五 ...

最新文章

  1. MATLAB 不能用了,哪些替代品可以继续搞科研?
  2. 计算机考试单招考试面试,最新单招考试面试自我介绍范文
  3. delphi编码规范文档
  4. 蚂蚁算法求解tsp问题matlab,蚁群算法解决TSP问题的MATLAB程序
  5. 如何在单个API中支持Java 6、8、9
  6. 冲击双一流:燕山大学到底实力如何?
  7. java获取上一天数据,java获取日历格式的日期数据
  8. atitit 提升数据库死锁处理总结
  9. Atitit View事件分发机制
  10. linux+电音制作软件,如何在Linux DAW上愉快的使用常见的FX插件?
  11. iWebOffice一些相关
  12. 计算机命令提示符的使用,命令提示符(电脑系统命令提示符的打开方法)
  13. 如何通过回测报告中的指标评估策略优劣?
  14. 来自于游戏开发萌新的上路分享
  15. billu_b0x靶场通关
  16. 【OpenCV】人脸检测和识别
  17. Win10家庭版升级至专业版
  18. 钉钉 服务器 消息推送,【20210727 更新】 全能推送PushBot(原钉钉推送)支持企业微信,PushPlus,Bark...
  19. K8s中的CNI网络模型
  20. Python爬虫爬取单张图片

热门文章

  1. Tyvj 1004 滑雪~
  2. fcpx怎么合成延时摄影_延时摄影:如何制作你的第一部延时视频,这里有几个小技巧...
  3. HyperLPR 高性能开源中文车牌识别框架
  4. 苹果大战FBI,四个回合的波折之后有哪些启示?
  5. vsd格式文件如何打开?
  6. docker invalid reference format: repository name must be lowercase
  7. java项目抠图功能实现
  8. Java实现贪吃蛇大作战小游戏(完整教程+源码)额外实现积分和变速功能
  9. 反向传播人工神经网络
  10. 中国31个三十一个省会城市的货郎担回路15404千米