百盈pk10

<small id="oo6zy"><acronym id="oo6zy"></acronym></small>

    <ins id="oo6zy"></ins>
  1. <tr id="oo6zy"></tr>
        <ins id="oo6zy"><video id="oo6zy"><var id="oo6zy"></var></video></ins>

        1. 博主信息
          小馬駒會飛
          博文
          1
          粉絲
          0
          評論
          0
          訪問量
          95
          積分:0
          P豆:3

          淺述PHP7底層設計01-PHP7語言執行原理

          2020年04月28日 18:42:56閱讀數:95博客 / 小馬駒會飛 / 探秘PHP底層設計

                  PHP作為一種解釋型語言,不同于編譯型語言編譯結果即為當前CPU體系的指令,PHP源代碼只有編譯成opcode才能夠被zend虛擬機直接執行。

                  下面就簡單描述PHP7語言執行原理:

          1. 源代碼首先利用Re2c實現的詞法分析器進行詞法分析,將源代碼切割為多個字符串單元,分割后的字符串稱為Token;

          2. 基于Bison實現的語法分析器將Token和符合BNF文法規則的代碼生成抽象語法樹;

          3. 抽象語法樹(AST)編譯生成opcode;

          (圖片來源于:https://www.imooc.com/article/68382


                  我們常常討論的解釋型語言執行效率較低,原因在于PHP執行過程中要多了翻譯為opcode的過程。不僅如此,與常駐內存的Java等語言不同,PHP代碼在執行過后,內存會馬上釋放,基本上所有數據都會在此時銷毀(僅有極少數數據會緩存)。這種執行機制的優點在于有效避免內存泄漏,內存回收機制更簡單,缺點就是每個PHP請求都得重復執行請求-翻譯-執行的過程。為了彌補不是常駐內存的缺憾,引入opcode緩存,zend虛擬機會將第一次執行的PHP代碼編譯結果緩存到內存或者硬盤中,當下次執行該部分代碼時直接讀取緩存,一定程度上可以提高PHP運行速度。

          內存泄漏(Memory Leak)是指程序中己動態分配的堆內存由于某種原因程序未釋放或無法釋放,造成系統內存的浪費,導致程序運行速度減慢甚至系統崩潰等嚴重后果。

          參考資料

          1. 陳雷,PHP7底層設計與源碼實現
          2. 列旭松,陳文,PHP核心技術與最佳實踐

          全部評論

          文明上網理性發言,請遵守新聞評論服務協議

          條評論
          暫無評論暫無評論!
        2. 武宁| 唐河| 任县| 阿拉善右旗| 中泉子| 桓仁| 永顺| 河南| 巧家| 河口| 荆州| 玉溪| 嘉善| 舞钢| 陇县| 魏县| 镇雄| 渝北| 邓州| 江油| 范县| 邢台| 阿拉善左旗| 河南| 崇仁| 扶余| 六枝| 镇江| 商丘| 青冈| 六库| 马山| 宁冈| 沙坪坝| 六盘山| 玉山| 永平| 盐山| 阿木尔| 麻江| 西青| 长海| 阿巴嘎旗| 河南| 包头| 康平| 上虞| 栖霞| 呼伦贝尔| 临猗| 辽中| 西连岛| 古蔺| 扶风| 淳安| 绵阳| 崇州| 集安| 富顺| 泰山| 隆尧| 丰顺| 恩平| 石河子| 辉南| 孪井滩| 子长| 长葛| 绵阳| 沙湾| 瓮安| 土默特右旗| 柞水| 隆化| 额济纳旗| 康县| 封丘| 临汾| 太原南郊| 迭部| 长安| 嵊州| 陈家镇| 头道湖| 恩平| 英吉沙| 长安| 阿尔山| 始兴| 波阳| 襄垣| 宣化| 莱州| 天山大西沟| 汉源| 临沭| 河间| 乌拉特后旗| 公馆| 淅川| 易县| 安义| 德令哈| 上饶| 林口| 公主岭| 海兴| 吐鲁番| 镇赉| 始兴| 阿拉尔| 法库| 宣汉| 佳木斯| 确山| 漳县| 定襄| 东岗| 邓州| 黑山| 鹤城区| 硇洲| 佳木斯| 龙南| 惠州| 德令哈| 临沭| 河南| 秀山| 石拐| 辉南| 定海| 崂山| 龙门| 临淄| 会昌| 徐水| 龙海| 平武| 定州| 石景山| 泰和| 勃利| 龙胜| 炉山| 凤凰| 温宿| 上杭| 且末| 泸县| 宁武| 从化| 勃利| 孟州| 杂多| 长沙| 陆丰| 乌海| 广宗| 乐陵| 东乡| 巩留| 略阳| 赵县| 长泰| 含山| 青岛| 靖远| 大港| 陵川| 隆子| 武陟| 双柏| 密山| 桃园| 龙胜| 海拉尔| 连江| 鹤峰| 华亭| 拉孜| 大理| 锡林浩特| 永新| 华亭| 任丘| 厦门| 铁岭| 商城| 阆中| 喀左| 巴彦诺尔贡| 乌拉盖| 乐安| 怀来| 澜沧| 沁阳| 金昌| 垣曲| 三江| 安阳| 桦南| 当阳| 柏乡| 茶卡| 玉树| 桂林| 苏家屯| 禄丰| 丹徒| 龙泉驿| 金山| 乐安| 内江| 仁化| 永嘉| 本溪县| 沁源| 永和| 黔阳| 泾县| 资兴| 莲花| 宿松| 盈江| 遮浪| 台中| 榆中| 海拉尔| 乡城| 湖口| 郫县| 崇义| 如东| 东兰| 云梦| 汝城| 青铜峡| 泽当| 济源| 麻江| 青神| 闽清| 宜宾县| 即墨| 博湖| 开远| 东丽| 昭平| 南通| 东阳| 竹溪| 张家口| 侯马| 厦门| 临沭| 澄迈| 乌鞘岭| 郏县| 临邑| 白水| 新密| 无为| 德宏| 苍梧| 仁怀| 布尔津| 获嘉| 西盟| 麻栗坡| 广河| 海林| 武城| 珲春| 启东| 务川| 察哈尔右翼后旗| 新野| 寻甸| 嫩江| 白杨沟| 绥德| 玛沁| 满都拉| 木垒| 马山| 三穗| 罗山| 青县| 皮山| 江都| 屏边| 宽城| 燕尾港| 皮口| 新界| 武义| 临清| 繁峙| 庄河| 浦东| 龙岩| 淮南| 鹿寨| 邱北| 隆昌| 烟台| 衢州| 高陵| 淳安| 内邱| 永登| 张家川| 依安| 田阳| 乌斯太| 广德| 三穗| 湟源| 莫索湾| 那曲| 抚宁| 石城| 莒南| 五峰| 石家庄| 中泉子| 蓟县| 秦安| 和林格尔| 长岭| 绥滨| 叶城| 嘉祥| 马尔康| 应县| 高安| 青岛| 武乡| 麻栗坡| 绥江| 栖霞| 安龙| 罗平| 随州| 仪陇| 温江| 澧县| 龙岩| 延庆| 安达| 武汉| 灵璧| 吉县| 法库| 白沙| 兴仁堡| 奉贤| 桂阳| 鄂托克前旗| 青神| 洋县| 铁卜加寺| 房山| 迭部| 太白| 平乡| 桐庐| 渑池| 夏河| 扬中| 涞水| 龙里| 武冈| 九龙| 大通| 秀山| 眉山| 金堂| 静海| 阳信| 沛县| 宁陕| 即墨| 海原| 南陵| 章党| 图们| 株洲| 南乐| 湛江| 界首| 威县| 同江| 清水河| 绥芬河| 南安| 昔阳| 湟源| 兴仁堡