期待已久的 PHP 的 JIT 终于要来了
时间:2019-02-11
本文章向大家介绍期待已久的 PHP 的 JIT 终于要来了,主要包括期待已久的 PHP 的 JIT 终于要来了使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Dmitry 提交了一个关于将 jit 加入 PHP 的 rfc,看起来已经开发地差不多了(感谢 Dmitry 和鸟哥~)。
下面是 RFC 的大致内容(与原文不完全一致,加入了自己的一些理解)
JIT 的好处
主要是 JIT 带来的性能提升,以及性能提升对整个语言使用场景的扩展及语言生态发展的支持。
- 目前已经很难通过常规手段提升 PHP 的性能,JIT 基本上是目前性能提升的唯一手段;
- JIT 带来的性能提升可以让 PHP 在更多使用场景( CPU 密集)中发挥作用;
- 可以使用 PHP 来开发内置函数,而不用担心性能方面的问题。这一方面可以加速语言的发展(更多人可以参与进来),同时也可以减少目前使用 C 开发容易出现的内存管理、溢出等问题
实现细节
- 作为 OPcache 一个独立组件开发,可以在 PHP 内核编译时或运行时启用,生成的 native 代码保存在 OPcache 共享内存一个额外区域;
- 使用 LuaJIT 的 DynAsm 库实现 native 代码生成,不使用 LLVM 是因为它生成代码的速度太慢了;
- 目前只支持 x86、x86_64 POSIX 平台,未来会提供更多平台的支持;
- 使用 PHP 7.4 跑分,开启 JIT 与不开启,性能大致提升 4 倍 (0.011 sec vs 0.046 sec).
预计的发布节点
- 在 PHP 7.4 中,作为试验特性加入,默认不开启;
- 在 PHP 8 正式发布
- spring data mongodb 代码连接数据库方式
- spring data mongodb dbref 关联查询
- spring-data-mongodb mapreduce使用
- 项目中如何设计通用的评论模块
- java8 stream
- spring boot中自定义错误提示页面
- spring boot中删除Data MongoDB的_class
- 用aop加redis实现通用接口缓存
- spring boot 实现mysql读写分离
- spring boot集成druid连接池
- spring boot整合dubbox进行服务拆分
- Spring Cloud中如何保证各个微服务之间调用的安全性
- Spring Boot Actuator监控页面报错解决
- Spring Cloud中如何优雅的使用Feign调用接口
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Flutter 快捷开发 Mac Android Studio 篇
- TRTC Android端开发接入学习之互动直播(七)
- Flutter 实现酷炫的3D效果
- 【Flutter 实战】一文学会20多个动画组件
- 【Flutter 实战】动画序列、共享动画、路由动画
- 【Flutter 实战】自定义动画-涟漪和雷达扫描
- Flutter —布局系统概述
- 【Flutter 实战】全局点击空白处隐藏键盘
- 我对Flutter的第一次失望
- 【Flutter 实战】各种各样形状的组件
- 『Flutter-绘制篇』实现炫酷的雨雪特效
- 图书管理系统(Servlet+Jsp+Java+Mysql,附下载演示地址)
- Vuex 映射完全指南
- 我们是如何改进YOLOv3进行红外小目标检测的?
- Unity3D网络通讯(三)-- HttpRestful请求的简单封装