栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

配置JIT提高PHP8性能的实验笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

配置JIT提高PHP8性能的实验笔记

PHP8已发布挺久了,PHP8的JIT功能着实让PHP性能提升不少,先上图看下效果吧。

测试代码
php.php


$r = 0;
for ($c = 0; $c < 1000000000; $c++) {
   $r += $c;
}
}
t();

node.js

var r = 0;
for (var c = 0; c < 1000000000; c++) {
   r += c;
}

golang.go

package main
func main() {
	var r int
	for c := 0; c < 1000000000; c++ {
	       r += c
	}
}

java.java

// 编译 javac java.java
public class java {
    public static void main(String[] args) {
        int r= 0;
        int c;
        for (c = 0; c < 1000000000; c++) {
           r += c;
        }
    }
}

c.c

//编译 cc -O2 c c.c
int main(int argc,char * argv[]){
	int r= 0;
	for (int c = 0; c < 1000000000; c++) {
	   r += c;
	}
}

python.py

#!/usr/bin/python3 

total=0
for i in range(1000000000):
    total+=i
print(total)

python 直接执行终端奔溃。所以就没测试了,感兴趣的同学可以自己测试下,最好用Cpython,不然慢得没有可比性。有些python培训机构吹python的时候总不忘了黑PHP一下。从上面的测试数据来看,PHP很差吗?我不是计算机科班毕业,在网上买了一本PHP编程入门的书,一个月后就用PHP搞了一个团购网站,这相对于我花了十多年时间学习C语言来比较,可以说PHP是门非常容易学习的编程语言。

启用JIT
php8才支持JIT,启用JIT前需要启用opcache。编辑php.ini 设置如下信息

opcache.enable=1
opcache.enable_cli=1
opcache.jit_buffer_size=100M  //实际上是启用JIT的唯一设置项
opcache.jit=1255 //有默认值,不是必须设置。

配置说明 opcache.jit=CRTO

  • C 指定是否在生成机器码时使用AVX指令, 需要CPU支持

    • 0 不使用
    • 1 使用

    终端执行以下命令可以用来检查CPU是否支持AVX指令
    $ inxi -Cxxx |grep avx
    Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx

  • R 寄存器分配策略

    • 0 不使用寄存器分配
    • 1 局部(block)域分配
    • 2 全局(function)域分配
  • T JIT触发策略

    • 0 PHP脚本载入的时候就JIT
    • 1 当函数第一次被执行时JIT
    • 2 在一次运行后,JIT调用次数最多的百分之(opcache.prof_threshold * 100)的函数
    • 3 当函数/方法执行超过N(N和opcache.jit_hot_func相关)次以后JIT
    • 4 当函数方法的注释中含有@jit的时候对它进行JIT
    • 5 当一个Trace执行超过N次(和opcache.jit_hot_loop, jit_hot_return等有关)以后JIT
  • O JIT优化策略

    • 0 不JIT
    • 1 做opline之间的跳转部分的JIT
    • 2 内敛opcode handler调用
    • 3 基于类型推断做函数级别的JIT
    • 4 基于类型推断,过程调用图做函数级别JIT
    • 5 基于类型推断,过程调用图做脚本级别的JIT

以上配置来源:
- PHP 8新特性之JIT简介
- PHP 8: How to setup the JIT

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/931563.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号