首页 » 网站推广 » php置最年夜运行技巧_让PHP达到最高机能Tips1

php置最年夜运行技巧_让PHP达到最高机能Tips1

访客 2024-11-22 0

扫一扫用手机浏览

文章目录 [+]

部分原文如下:

\"大众记得启用Zend Opcache, 由于PHP7纵然不启用Opcache速率也比PHP-5.6启用了Opcache快,以是之前测试期间就发生了有人一贯没有启用Opcache的事情. \"大众

php置最年夜运行技巧_让PHP达到最高机能Tips1

那么,Opcache 到底是什么,为什么启用了Opcache 后PHP就会有如此高的性能提升?

php置最年夜运行技巧_让PHP达到最高机能Tips1
(图片来自网络侵删)

比较于C/C++、Java而言,PHP、Python属于阐明型措辞,不产生机器码,而是产生中间码,我们把这个中间码称为 “Opcode”;

Opcode是一种PHP脚本编译后的中间措辞,就像Java的ByteCode,或者.NET的MSL,举个例子,比如你写下了如下的PHP代码:

<?php

echo \"大众Hello World\"大众;

$a = 1 + 1;

echo $a;

?>

PHP实行这段代码会经由如下4个步骤:

1.Scanning(Lexing) ,将PHP代码转换为措辞片段(Tokens)

2.Parsing, 将Tokens转换成大略而故意义的表达式

3.Compilation, 将表达式编译成Opocde

4.Execution, 顺次实行Opcode,每次一条,从而实现PHP脚本的功能。

而我们的代码,每次运行都会重复上面的四步;

但是,业务逻辑和功能一旦完成,处于生产阶段时,代码是基本不会变革的,因此,我们大多数韶光并不须要重新编译天生Opcode;

如果我们可以将每次天生的Opcode保存下来,也便是省略前三步的编译过程,只实行第四步,那么我们PHP代码的实行效率将会得到一个质的提升;

而 OPcache 便是PHP官方供应的保存Opcode的工具,基本事理便是通过将 PHP 脚本预编译的字节码存储到共享内存中,省去了每次加载和解析 PHP 脚本的开销,从而大大提升 PHP 的性能。

在PHP 5.5.0 及后续版本中,官方已经绑定了 OPcache 扩展,不须要我们额外添加;对付 PHP 5.4及之前的版本可以利用 PECL 扩展中的 OPcache 库。

不管利用什么版本的PHP,都须要在php.ini中添加下面的代码,引入扩展:

保存php.ini并退出编辑器后,查看扩展是否引入成功:

在确定Opcache扩展库存在之后,接下来的事情便是修正php.ini 配置文件,启动Opcache即可;

以下是西岭老湿给出的大略配置,并且也已经表明了注释含义;

如果想详细查看其他配置及细节,请查看官方文档:

http://php.net/manual/zh/opcache.configuration.php

//启用操作码缓存。
如果禁用此选项,则不会优化和缓存代码。

//在运行期利用 ini_set() 函数只能禁用 opcache.enable 设置,不可以启用此设置。

//如果在脚本中考试测验启用此设置项会产生警告。

opcache.enable=1

//仅针对 CLI 版本的 PHP 启用操作码缓存。

//常日被用来测试和调试。

opcache.enable_cli=1

//OPcache 的共享内存大小,以兆字节为单位。

//官方建议值 128

opcache.memory_consumption=64

//用来存储临时字符串的内存大小,以兆字节为单位.

//PHP 5.3.0之前的版本会忽略此配置指令。

//官方建议值 8

opcache.interned_strings_buffer=8

//OPcache 哈希表中可存储的脚本文件数量上限。

//真实的取值是在质数凑集 { 223, 463, 983, 1979, 3907,

// 7963, 16229, 32531,65407, 130987 }

//中找到的第一个大于即是设置值的质数。

//设置值取值范围最小值是 200,

//最大值在 PHP 5.5.6 之前是 100000,

//PHP 5.5.6 及之后是 1000000。

//官方建议值 4000

opcache.max_accelerated_files=4000

//检讨脚本韶光戳是否有更新的周期,以秒为单位。

//设置为 0 会导致针对每个要求,

//OPcache 都会检讨脚本更新。

//也可以大略理解为 缓存时长

opcache.revalidate_freq=30

//如果启用,则会利用快速停滞续发事宜。

//所谓快速停滞续发事宜是指依赖 Zend

//引擎的内存管理模块 一次开释全部要求

//变量的内存,而不是依次开释每一个已分配的内存块。

opcache.fast_shutdown=1

修正之后,重启做事器与php干系进程即可;

紧接着,我们对厥后果进行测试:

代码文件如下:

<?php

echo 1;

?>

利用浏览器访问后,结果为 1 ;这是正常的;

但是紧接着修正代码,速率要快:

<?php

echo 2;

?>

利用浏览器访问后,结果仍旧为 1 ;

不断刷新,大约30秒过后,输出结果为 2;

30秒的间隔便是Opcache为我们缓存了代码造成的;

标签:

相关文章

Python编程从入门到精通,探索编程之美

编程已经成为现代社会的一项基本技能。Python作为一种简单易学、功能强大的编程语言,在我国教育领域备受关注。本文将从Python...

网站推广 2025-03-02 阅读1 评论0

Scum07代码编程之美与适用方法

编程已成为当今社会不可或缺的技能之一。Scum07代码作为一款经典的编程语言,在我国众多程序员中备受推崇。本文将深入解析Scum0...

网站推广 2025-03-02 阅读1 评论0

Linux环境下的前端代码运行优化与步骤

前端技术逐渐成为软件开发的核心。Linux操作系统因其稳定性、安全性、开放性等特点,成为众多开发者和企业青睐的运行环境。本文将从L...

网站推广 2025-03-02 阅读1 评论0