惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
I
InfoQ
博客园_首页
G
Google Developers Blog
爱范儿
爱范儿
Last Week in AI
Last Week in AI
量子位
阮一峰的网络日志
阮一峰的网络日志
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
月光博客
月光博客
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

博客园 - 慕容木木

DeepSeek Harness - DeepSeek 开源 Agent 运行时底座,万物皆插件,7400+ Star 一日爆火 如何调整3D打印的松紧? 3D耗材拉丝需要干燥的方法 WeMD - 更优雅的 Markdown 公众号排版工具,一键复制到微信 【免费软件】Motrix Next - 全能下载神器回归,体积缩小4倍、迅雷替代 【免费软件】Recordly - 开源录屏神器,一键制作专业演示视频 一场碳基大脑的认知起义 【AI赋能】百宝箱内测OpenClaw,测试推送消息成功,手把手教你怎么做(20260214) 手把手教你安全移除 OpenClaw:全流程清理与避坑指南 【免费领取】OpenClaw 国内部署完全指南,打造你的专属 AI 数字助手(文末有获取方法) OpenClaw爆火背后:我的冷思考 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体的替代品,可本地部署+知识库,注册即可有750w的token使用 即将迎来全民编程时代 免登录的华为小艺+DeepSeek才是yyds,这个结合太丝滑了 Cherry Studio:最强电脑端AI工具合集软件推荐与使用方法(有满血DeepSeek R1的小艺) 全网最全的DeepSeek的使用指导资源,拿去用来操作其他的大模型也一样有用,你去找付费培训不如打赏我一毛 Qwen2.5 Max:最有可能是DeepSeek R1的平替 本地部署最强人工智能服务:方案(一)Chatbox+硅基流动(满血DeepSeek R1) CentOS7安装nvm和node (vm/vb)虚拟机复制或者拷贝之后连不上网络怎么处理? Vmware共享文件夹安装设置方法(window与Linux使用共享文件夹) VirtualBox配置安装入门(Linux连不上网络和设置共享文件夹) PHP中常见的几种运行代码的方式 PHP性能之语言性能优化:vld——查看代码opcode的神器 PHP性能之语言性能优化:魔术方法好不好? PHP性能:序——谈ab(Apache Bench)压力测试工具
PHP性能之语言性能优化说明
慕容木木 · 2017-02-06 · via 博客园 - 慕容木木

PHP语言性能优化优化啥?

  如下图所示,PHP直接执行的是opcode,所以我们尽量减少扫描和转码解析。

  

  这是我们第一个优化点,尽量使用PHP内置的函数代替我们的代码来实现同样的功能。

  和我们自己写的代码一样,PHP本身内置了很多函数,所以实现同一个功能我们可以使用多个内置函数来实现,那么是不是内置函数也会有性能区别呢?

  答案当时是肯定的,因为每个函数的运行量不同(类似我们的代码,实现一个功能,使用10行代码和使用100行代码会有一定的时间差),生成的opcode也不一样。这就是我们优化的第二个点,我们在使用内置函数的同时,需要选择正确的内置函数

  还有其他的优化点在后续的文章有说明,这里不多赘述了。

PHP内置的函数该怎么选择?

  PHP内置的函数有上千个,我们怎么选择那个是我们项目最需要的确实是比较麻烦的事情。平常一定需要熟悉常用的函数:处理字符串的,处理数组的,处理数据库的。(对于常用的函数,我后面会专门写相关的专题来对比)

怎么测试耗时?

  1、使用microtime()函数,该方法用在某段程序的耗时。下面是简单的获取时间的函数,需要在运行前断一下和运行结束断一下。

function current_time(){
    list($usecond,$second) = explode(" ", microtime());
    return ((float)$usecond+(float)$second);
}

  2、使用linux自带的time命令,该方法可以用在整个PHP文件的运行耗时。命令可以看到程序运行的系统时间,程序消耗时间(user)很真实时间。

  

  上图显示耗时12毫秒。

题外话:测试一下Apache和Nginx的性能

请求100次,每次并行100个请求。左边是Apache,右边是Nginx。

  Apache Nginx
每秒请求量 4.32 4415.99

每个请求耗时(ms) 

231.562 0.226 


 

  文章为作者学习所得,有纰漏,请留言指出,谢谢支持!转载请附上本文章的连接