国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

跟著辛星一起了解下PHP的函數的性能

2020-03-22 19:43:19
字體:
來源:轉載
供稿:網友
  • 首先聲明一下,這篇文章是我的原創(chuàng),但是,這些數據不是我總結出來的,大家可以搜索下“百度工程師HDK”,這些數據是他提供的,我只是給一個總結,因為他那篇文章很長,我這里提煉了幾點要點。

    要了解函數的性能,首先要知道函數的執(zhí)行流程,它首先通過scanning被轉化為語言片段(tokens),然后通過parsing為簡單有意義的表達式,然后compile(編譯)為Opcode,最后execute(執(zhí)行)。因為PHP本身是用C去實現(xiàn)的,因此最終調用的都是C的函數,即PHP就是一個用C開發(fā)出來的軟件。

    在PHP中,用戶通過PHP實現(xiàn)的自定義函數和內置函數有完全不同的實現(xiàn)機制,Zend在執(zhí)行的時候,如果發(fā)現(xiàn)調用的是內置函數,只是做一個轉發(fā)操作,內置函數在編譯后會展開成一個zif_xxx的函數,而對于內置函數的操作,zend實現(xiàn)的是淺拷貝,其效率和C差不多,非常給力。如果是用戶自定義的函數,則用戶函數的調用最終是解析一堆的opcode。用戶自定義空函數的執(zhí)行速率大約是280w/s,即每秒可以執(zhí)行二百八十萬次,而內置函數則達到了780w/s,差不多是用戶自定義函數的三倍。

    不講這些原理性的東西了,下面說一些測試結果把,函數名的長度對性能是有一些影響的,下面是他給出的數據:


    通過上表,我們發(fā)現(xiàn)一個長度為1的函數和長度為16的空函數調用,性能會差一倍,原因何在,就是因為函數名越長,查詢需要的時間就越多,因此,函數名還是盡量短一些。

    這張圖片是用戶自定義的函數直接調用內置函數,只是單純的測試兩個函數的性能,很好理解把,不同類型的函數的執(zhí)行效率差別很大的。

    當然他本人還測試了一些PHP的一些函數的運行效率,我直接把這些東西過濾掉了,感覺并不特別有意義。

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

  • 發(fā)表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發(fā)表
    主站蜘蛛池模板: 武威市| 海盐县| 大丰市| 东丽区| 芦山县| 大庆市| 苍山县| 河南省| 肇州县| 兴隆县| 施秉县| 双城市| 玉环县| 琼中| 边坝县| 睢宁县| 柳江县| 陇西县| 孟连| 临泉县| 杂多县| 岑溪市| 宝应县| 沁阳市| 长治县| 达尔| 新宾| 泰州市| 安塞县| 嘉祥县| 江达县| 岫岩| 丰台区| 南投市| 扶余县| 新巴尔虎右旗| 庄河市| 桂阳县| 财经| 德昌县| 沧源|