php 开启opcode,php 开启 opcode 测试

php 开启opcode,php 开启 opcode 测试php 开启 opcode 测试 合理使用 实验环境系统信息 Linuxlocalho localdomain3 10 0 514 10 2 el7 x86 64 1SMPFriMar30 04 05UTC2017x86 64×86 64×86 64GNU Linux 内存 512MCPU1 核 PHP 版本 PHP7 0 21 amp ZendOPcach

php 开启 opcode 测试,合理使用~

实验环境系统信息 Linux localhost.localdomain 3.10.0-514.10.2.el7.x86_64 #1 SMP Fri Mar 3 00:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

内存 512M CPU 1核

PHP 版本 PHP 7.0.21 & Zend OPcache v7.0.21

opcode 介绍php 运行方式Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens)

Parsing, 将Tokens转换成简单而有意义的表达式

Compilation, 将表达式编译成Opocdes

Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。

Zend 中opcode 缓存结构体

struct _zend_op {

opcode_handler_t handler; // 执行该opcode时调用的处理函数 znode result; // 函数返回信息 znode op1; // 参数1 znode op2; // 参数2 ulong extended_value;

uint lineno;

zend_uchar opcode; // opcode代码};参数配置参考地址 点击这里

opcode 注意事项opcode 生成规则是,通过时间戳进行生成新 opcode,在生产环境中如果发布版本回退,老的opcode 生成时间会大于回退版本文件的当前时间戳的。 也就是说不会再更新啦。

测试结果

测试代码

for($i=0;$i<100;$i++){

echo “Hello Opcache”;

}执行命令 ab -n 1000 -c 100 http://192.168.1.110:8080/t1.php

开启时测试结果结果Concurrency Level: 100

Time taken for tests: 0.976 seconds

Complete requests: 1000

Failed requests: 0

Write errors: 0

Total transferred: bytes

HTML transferred: bytes

Requests per second: 1024.27 [#/sec] (mean)

Time per request: 97.630 [ms] (mean)

Time per request: 0.976 [ms] (mean, across all concurrent requests)

Transfer rate: 1430.38 [Kbytes/sec] received

关闭后测试结果Concurrency Level: 100

Time taken for tests: 1.695 seconds

Complete requests: 1000

Failed requests: 0

Write errors: 0

Total transferred: bytes

HTML transferred: bytes

Requests per second: 589.89 [#/sec] (mean)

Time per request: 169.522 [ms] (mean)

Time per request: 1.695 [ms] (mean, across all concurrent requests)

Transfer rate: 823.78 [Kbytes/sec] received

结论在开启 opcache 后 每秒钟请求从 589.89 增长到了 1024.27 合理利用 opcache 会给程序带来不错的优化效果

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233637.html原文链接:https://javaforall.net

(0)
上一篇 2025年7月3日 下午12:01
下一篇 2025年7月3日 下午12:22


相关推荐

  • LabVIEW图像灰度分析与变换(基础篇—4)

    LabVIEW图像灰度分析与变换(基础篇—4)图像分析是将图像的像素灰度统计和测量技术结合,使机器可以理解图像内容,并提取特征信息以实现智能检测目的的学科。图像分析更侧重于对图像内容的分析、解释和识别。

    2022年6月16日
    60
  • 微信小程序开发【前端+后端(java)】

    微信小程序开发【前端+后端(java)】前言现在微信小程序越来越火了,相信不少人都通过各种途径学习过微信小程序或者尝试开发,作者就是曾经由于兴趣了解开发过微信小程序,最终自己的毕业设计也是开发一个微信小程序。所以现在用这篇博客记录我之前开发的一些经验和一些心得吧。主要内容springboot+mybatis构建小程序项目构建小程序组件讲解小程序api调用后台resetful接口编写小程序调用后台接口小…

    2022年6月10日
    39
  • git查看用户名和邮箱 -切换用户和邮箱[通俗易懂]

    git查看用户名和邮箱 -切换用户和邮箱[通俗易懂]git用户查看和切换

    2025年9月29日
    5
  • CPLD和FPGA的区别(转)[通俗易懂]

    CPLD和FPGA的区别(转)[通俗易懂]原文:http://tvb2058.spaces.eepw.com.cn/articles/article/item/15358本文重点从CPLD的结构来讲的,从而说明其与FPGA的区别——————————————————————————————————-…

    2022年5月29日
    46
  • Oracle number 类型转换为 varchar2「建议收藏」

    Oracle number 类型转换为 varchar2「建议收藏」项目初期表结构设计是非常重要,在字段类型定义样也要格外小心,业务开展后,修改字段类型代价非常大。本文主要记录在oracle中number类型转换为varchar2数据类型方法以及案例演示。number类型的数据直接存人varchar2类型的字段中,会出现格式问题,如:.5,5.等to_char(number)可将number类型转换为varchar2类型,可以指定格式fmt(可选);参数n,可以是NUMBER、BINARY_FLOAT或BINARY_DOUBL

    2022年7月24日
    224
  • pycharm闪退并返回reply_pid进程号.log文件

    pycharm闪退并返回reply_pid进程号.log文件pycharm 激活后 打开时闪退并返回 reply pid 进程号 log 文件原因 激活的版本与 windows 系统安装的版本不一致解决办法 重新下载与本机 pycharm 版本一致的 jetbrains agent jar 并将其放置在 lib 文件夹下 有的博主说可以放在 bin 目录下 试了 打不开 pycharm 1 打开 pycharm gt help gt editCustomV

    2026年3月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号