• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

随着辛星一起了解下PHP的函数的性能

php 搞代码 4年前 (2022-01-24) 19次浏览 已收录 0个评论

跟着辛星一起了解下PHP的函数的性能

首先声明一下,这篇文章是我的原创,但是,这些数据不是我总结出来的,大家可以搜索下“百度工程师HDK”,这些数据是他提供的,我只是给一个总结,因为他那篇文章很长,我这里提炼了几点要点。

要了解函数的性能,首先要知道函数的执行流程,它首先通过scanning被转化为语言片段(tokens),然后通过parsing为简单有意义的表达式,然后compile(编译)为Opcode,最后execute(执行)。因为PHP本身是用C去实现的,因此最终调用的都是C的函数,即PHP就是一个用C开发出来的软件。

在PHP中,用户通过PHP实现的自定义函数和内置函数有完全不同的实现机制,Zend在执行的时候,如果发现调用的是内置函数,只是做一个转发操作,内置函数在编译后会展开成一个zif_xxx的函数,而对于内置函数的操作,zend实现的是浅拷贝,其效率和C差不多,非常给力。如果是用户自定义的函数,则用户函数的调用最终是解析一堆的opcode。用户自定义空函数的执行速率大约是280w/s,即每秒可以执行二百八十万次,而内置函数则达到了780w/s,差不多是用户自定义函数的三倍。

不讲这些原理性的东西了,下面说一些测试结果把,函数名的长度对性能是有一些影响的,下面是他给出的数据:

通过上表,我们发现一个长度为1的函数和长度为16的空函数调用,性能会差一倍,原因何在,就是因为函数名越长,查询需要的时间就越多,因此,函数名还是尽量短一些。

这张图片是用户自定义的函数直接调用内置函数,只是单纯的测试两个函数的性能,很好理解把,不同类型的函数的执行效率差别很大的。

当然他/本文来源gaodai#ma#com搞*!代#%^码网%搞代gaodaima码本人还测试了一些PHP的一些函数的运行效率,我直接把这些东西过滤掉了,感觉并不特别有意义。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:随着辛星一起了解下PHP的函数的性能

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址