您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

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

2024/3/29 11:42:23发布12次查看
跟着辛星一起了解下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的空函数调用,性能会差一倍,原因何在,就是因为函数名越长,查询需要的时间就越多,因此,函数名还是尽量短一些。
这张图片是用户自定义的函数直接调用内置函数,只是单纯的测试两个函数的性能,很好理解把,不同类型的函数的执行效率差别很大的。
  当然他本人还测试了一些php的一些函数的运行效率,我直接把这些东西过滤掉了,感觉并不特别有意义。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录