国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
    主站蜘蛛池模板: 蒙阴县| 新乐市| 绥化市| 永福县| 封开县| 邛崃市| 岑溪市| 宜良县| 福建省| 盐城市| 鄂伦春自治旗| 绵阳市| 永和县| 修水县| 泰州市| 宁乡县| 寻甸| 山丹县| 东山县| 嘉善县| 龙陵县| 永济市| 泰兴市| 托里县| 济阳县| 东阳市| 松滋市| 广南县| 壶关县| 鱼台县| 左贡县| 洛扎县| 六盘水市| 读书| 丰台区| 永州市| 客服| 桦甸市| 廉江市| 杂多县| 墨玉县|