十一、 PHP8 新特性:JIT

1. 概述

  • JIT (Just-In-Time) 即时编译器是 PHP8.0 中最重要的新功能之一,可以极大提高性能。
  • JIT 编译器将作为扩展集成到 PHP 中 Opcache 扩展用于运行时将某些操作码直接转换为 cpu 指令。仅在启用 opcache 的情况下,JIT 才有效。

2. Opcache 扩展

Opcache 通过将 PHP脚本 预编译的字节码 存储到共享内存中来提升性能,存储预编译字节码的好外就是:省去了每次加载和解析 PHP 脚本的开销

3. Opcache 开启 与 配置

  1. 文件位置:php.ini
  2. 开启
zend_extension = opcache
  1. 配置
; Determines if Zend OPCache is enabled
opcache.enable=1

; Determines if Zend OPCache is enabled for the CLI version of PHP
opcache.enable_cli=0

; The amount of memory for interned strings in Mbytes.
opcache.interned_strings_buffer=8

; The maximum number of keys (scripts) in the OPcache has table.
; Only numbers between 200 and 1000000 are allowed.
opache.max_accelerated_files=10000
  1. 新增
opache.jit=tracing
opache.jit_buffer_size=100M
  1. 常见问题 PHP扩展目录
extension_dir = "ext"

4. JIT 运行速度实战

<?php
	//返回当前 Unix 时间戳的微秒数
	//get_as_float 可选。当设置为 TRUE 时,规定函数应该返回一个浮点数,否则返回一个字符串。默认为 FALSE。
	$start = microtime(true);//开始时间
	echo "开始时间:".$start."\n";
	$total = 0;
	for($i=0;$i<1000000;$i++){
		$total +=$i;
	}
	$end = microtime(true);//结束时间
	echo "结束时间:".$end."\n";
	echo "循环次数:".$i.",求和:".$total."\n";
	
	$spend = ($end-$start)*1000;
	echo  "使用时间:".$spend. "ms";
	/*
		PHP7 需要10ms
		PHP8 需要1ms (开启Opcache后)
	*/
?>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值