美文网首页PHP程序员
PHP8中设置开启JIT

PHP8中设置开启JIT

作者: php转go | 来源:发表于2020-12-24 14:56 被阅读0次

PHP8.0.0于2020年11月26日发布了
PHP 8在PHP的内核中添加了JIT编译器,可以极大地提高性能。更强的cpu密集处理
开启PHP8.0的JIT
修改php.ini

;加载php_opcache拓展
zend_extension=php_opcache
;开启opcache,关闭则不会执行jit
opcache.enable=1
;开启cli模式opcache
opcache.enable_cli=1
;开启jit的debug
opcache.jit_debug=1
;默认是tracing,也可以function,官方最近值是1255
opcache.jit=1255
opcache.jit_buffer_size=100M

phpinfo()查看opcache拓展的配置,或者var_dump(opcache_get_status()['jit']);查看jit状态
正常状态下输出

array:7 [
  "enabled" => true
  "on" => true
  "kind" => 5
  "opt_level" => 4
  "opt_flags" => 6
  "buffer_size" => 4080
  "buffer_free" => 0
]

如果enabled和on是正确的,那就ok了!

在php8.0与php7.3分别执行下面一段代码

$time=microtime(true);
for($i=0;$i<10000000;$i++){
    $d+=$i;
}
echo $d;
echo '<hr>';
echo microtime(true)-$time;

php8.0耗时 0.0856s
php7.3耗时2.18061s

opcache.jit配置项专门配置优化级别|JIT触发器|寄存器分配|CPU特定的优化标志
配置的顺序是:CPU特定的优化标志、寄存器分配、JIT触发器、优化级别,官方给的推荐值为1255
CPU特定的优化标志:

0 没有
1个 启用AVX指令生成

R-寄存器分配:

0 不执行寄存器分配
1个 使用本地线性扫描寄存器分配器
2 使用全局线性扫描寄存器分配器

JIT触发器:

0 JIT在第一次脚本加载时的所有功能
1个 首次执行时的JIT函数
2 在第一个请求时进行概要分析,并在第二个请求时编译热功能
3 动态分析并编译热功能
4 在文档注释中使用@jit标记编译函数
5 跟踪JIT

O-优化级别:

0 不要准时
1个 最小JIT(调用标准VM处理程序)
2 选择性VM处理程序内联
3 基于单个函数的静态类型推断的优化JIT
4 静态类型推断和调用树的优化JIT
5 基于静态类型推断和内部过程分析的优化JIT

所以1255指的是
启用AVX指令生成,使用本地线性扫描寄存器分配器,跟踪JIT,基于静态类型推断和内部过程分析的优化JIT
function 是C = 1,R = 2,T = 0,O = 5的别名。 1205
tracing 是C = 1,R = 2,T = 5,O = 4的别名。 1254

相关文章

  • PHP8中设置开启JIT

    PHP8.0.0于2020年11月26日发布了PHP 8在PHP的内核中添加了JIT编译器,可以极大地提高性能。更...

  • php8.0介绍

    php8 jit介绍 jit为opcache扩展的一部分,在运行时将某些操作码编译成cpu指令,这些指令就不需要z...

  • PHP 8 新特性之 Attributes (注解)

    PHP8 的 Alpha 版本,过几天就要发布了,其中包含了不少的新特性,当然我自己认为最重要的还是 JIT,这个...

  • PHP8新特性介绍之JIT

    PHP8 alpha1已经在昨天发布,相信关于JIT是大家最关心的,它到底怎么用,有什么要注意的,以及性能提升到底...

  • linux编译安装php8 支持jit

    1.先下载php8最新源码,并且解压 2.安装php需要的依赖库 (ubuntu centos 基本上替换下 前面...

  • JIT和AOT

    前端编译、JIT、AOT简单解释JIT详细解释编译技术探讨 JVM中涉及JIT编译的参数大方法执行效率低的原因--...

  • Android7.0新特性及开发指南 转载

    JIT/AOT 编译 在 Android N 中,我们添加了 Just in Time (JIT) 编译器,对 A...

  • PHP8 - 纤程的使用

    概述 php8 (php8 >= 8.1.0 ) 中新增了纤程特性,官方文档地址如下: https://www.p...

  • 检测用户是否允许开启通知

    /使用在iOS8 及其以上的系统/ 如果用户没有开启通知 需要跳转到应用的设置中设置开启通知

  • windows10 + ubuntu 子系统配置

    Ubuntu子系统 windows 设置中开启开发者模式 windows 服务中开启windows 子系统。 下载...

网友评论

    本文标题:PHP8中设置开启JIT

    本文链接:https://www.haomeiwen.com/subject/xosmnktx.html