我打算將自定義webstore應用程序移植到Laravel,以便它是全新的,有光澤的,並且很樂意提供支持。花了幾個小時來設置框架並開始移植主佈局之後,我決定測試它的執行方式。我已經安裝了一份我的原始應用程序,並將移植的部分安裝到laravel,在那裏我創建了一個帶dimsav/laravel翻譯的部分模型,並將主要導航輸出爲大約30個部分的Section :: all()。Laravel性能
對於我laravel安裝大約需要360ms渲染只是上面:
,當我看到在Firebug的Netwrok標籤的簡單觀察的結果我感到非常震驚。我想象中的響應時間是多少時,整個頁面將被移植...
因爲要用原來的應用〜30ms的服務全網頁上相同的導航,熱門產品,子菜單,頁腳導航,檢查購物車內容等。
兩者都在相同的虛擬服務器上,甚至使用相同的數據庫,也沒有在任何緩存。
我異型的代碼,以發現任何問題,但我發現的是,
- 6.4%用於自動加載(爲32ms - 比整個請求0對於其他版本的更多),
- 12.5%/63ms - 服務註冊
- 11.1%/ 56ms - 配置loadig
- 無盡的Pipline呼叫44.5%。關於時間似乎花費在無休止的管道調用上。
只是爲了確認,一個空的laravel應用程序在大約17ms內響應。
我在這裏錯過了些什麼?我想到在移植到框架時會有一些性能下降,但是(假設整個設置的響應時間會增加,所以我預計〜20x)20x似乎很瘋狂。這些時間對於laravel來說是否正常,並且使用緩存(例如Redis)或其他優化技術有什麼大勝利?我想知道除了緩存之外是否還有其他任何內容?
你有很多路線?這被稱爲是過去版本的瓶頸,導致了[路由緩存](http://laravel.com/docs/5.0/controllers#route-caching)的引入。 – Jeemusu
不,我剛剛開始遷移,所以它實際上是2條路線 - 一個用於hompage和一個默認的路線,我使用laravel輸入URI。 Laravel是全新安裝,所以它是5.1。 – Okneloper
你在你的控制器中做什麼,或者你的程序的大部分?您的查詢執行多長時間?什麼是你的服務器規範?你在當前的網上商店緩存什麼(查詢等)。 – Jeemusu