zoukankan      html  css  js  c++  java
  • 辛星一起了解下后续PHP性能功能

          关于第一个发言,这篇文章是我的原创。但,这些数据不被总结出来我,你可以搜索下“百度project师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一些职能的效率。我直接这些东西过滤掉,我并不觉得特别有意义。


  • 相关阅读:
    看完这篇文章,你还会问陈景润证明“1+2”有什么意义吗?
    stm32串口发送数据复位 第一个数据丢失
    无理数的由来
    定义一个大数组时,出现错误,程序进入HardFault_Handler中断
    STM32使用FatFs
    块级元素IE6/IE7下inline-block解决方案
    Building Your First jQuery Plugin
    ub挂载window磁盘
    PE文件结构部分解析以及输入的定位
    私有云建设之超融合技术
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4566154.html
Copyright © 2011-2022 走看看