php7性能原理,php7卓越性能背后的原理有哪些?
噴答主 @朱涵俊 說php沒法常駐內(nèi)存的人,是沒理解答主的意思,看不下去了我要出來解釋一波。本來想發(fā)評論下面的結(jié)果字數(shù)限制。。匿了
-------------------技術(shù)分割線------------------
99%的網(wǎng)站都會用到mvc架構(gòu),那php的框架是怎么工作的呢?首先網(wǎng)站根目錄會一個apache的配置文件,也就是.htaccess,這個文件告訴apache將所有的請求重定向到index.php,也就是框架的入口文件,然后框架會根據(jù)url來匹配對應(yīng)的路由,沒錯這一層就是MVC的Controller部分,然后如果路由匹配成功就會執(zhí)行路由下面程序員寫的業(yè)務(wù)邏輯代碼,但業(yè)務(wù)里面是需要經(jīng)常訪問數(shù)據(jù)庫的,如果一條一條的拼接sql語句那就太麻煩了,所以這時候就要把對數(shù)據(jù)庫的操作按目的的封裝成一個個可重用的模塊,沒錯這一層就是MVC里面的Model層,然后通過Model拿到所需的數(shù)據(jù)后要呈現(xiàn)給用戶啊,最后終于輪到View層出馬了,view層是由程序員編寫的網(wǎng)頁模板文件和渲染引擎構(gòu)成的,將參數(shù)和模板文件傳給模板引擎,最后模板引擎將渲染完成后的html代碼返回給apache,apache再將網(wǎng)頁返回給用戶的瀏覽器解析。
從用戶點擊一個鏈接到看到網(wǎng)頁,也就一眨眼的功夫,沒想到php經(jīng)歷了這么多~聰明的你發(fā)現(xiàn)了嗎?用戶每點一次鏈接,php都會從頭從index.php入口文件開始執(zhí)行,直到最后view渲染出頁面~omg我大php表示我的心真的好累~
回到正題,答主一再強調(diào)“php每次都要從頭執(zhí)行代碼!從頭執(zhí)行代碼!從頭執(zhí)行代碼!”,你們真的有聽明白嗎?
為什么說這點是php相比較其他語言慢的原因,你想想啊一個普通的php框架代碼量再怎么也有2、3M吧,也就是說每收到一個請求php都會載入一次框架然后從頭開始執(zhí)行,還要執(zhí)行程序員寫的業(yè)務(wù)邏輯代碼。但是java或者nodejs等就不一樣了,這些語言寫的網(wǎng)站也會用到框架,但是他們的代碼和框架是常駐內(nèi)存的,也就是說每次收到請求后直接就可以立即執(zhí)行程序員的業(yè)務(wù)代碼了,而不用像php那樣要先載入框架controller層解析路由然后再載入model層解析模型代碼最后再載入view層解析模板~
這雖然不是php相對較慢的主要原因,但這絕對是php相對其他語言效率較低的重要原因之一,這并不是php爛而是跟php的運行機制有很大原因,以言論僅代表個人立場。大概就這樣,沒事找事挑刺兒挑我語法問題的人請走開。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的php7性能原理,php7卓越性能背后的原理有哪些?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据项目需求分析
- 下一篇: AJAXSUBMIT跨域问题