2017-04-26 50 views
1

我工作的一個Laravel 30年3月5日的應用程序,正在執行慢得不可接受,而且好像也超出了優化的任何級別可以解決一些問題,單個SQL查詢和緩存。我開發在以下環境中的應用:Laravel 5.3服用1.9秒與使用

Wampserver 3.0.6 64位,包括PHP 7中,MySQL 5.7.14和Apache 2.4.23 的Windows 10專業版64位 ORM:學說2 硬件:ZBook 17 G2,i7-4710MQ處理器,8GB內存,Quadro K2200M,固態硬盤

我讀過關於Laravel的性能和建議似乎是不支付太多的關注速度,因爲生產服務器的充足性能將處理因爲我打算把它放在SSD硬盤上運行的VPS服務器上。但是我的硬件本身並不是那麼慢,而且還在SSD上運行,所以我不太確定。我覺得這個設置有一些根本性的錯誤,並且附加了debugbar的下面的結果,用於加載一個調用單個SQL查詢(用於選擇用戶來驗證會話)的非常基本的頁面,以及完整的SQL日誌和「通用日誌「啓用了請求。

debugbar results

full query log

我已經運行與影響最小通常的優化:

  • PHP工匠優化--force
  • PHP工匠配置:緩存
  • PHP工匠路線:緩存
  • PHP工匠明確編譯
  • 緩存

我看到很多的帖子與人指出,實現< 100毫秒爲像我爲基準這篇文章上Laravel 5基本要求是一個不是問題的問題,所以我假設還有其他的事情發生在這裏,我希望有人能指點我是什麼導致了這種放緩。

謝謝!

更新

它就像我張貼了這個發生在我儘快,我使用Web根目錄內的一個符號鏈接連接到在Laravel應用程序公用文件夾(這是根目錄外) ,我不知道這個符號鏈接是什麼造成了放緩?如果我有機會進行基準測試,我會更新。

更新2

按照建議以測試速度爲Ajax請求,從debugbar結果下面顯示它只是緩慢,如果不是更慢。

enter image description here

+0

你使用'ORM:Doctrine 2'代替默認雄辯ORM ????,如果你只是做一個ajax調用一個沒有任何視圖的路由只是返回JSON數據。我的意思是創建一個REST端點來獲取或插入數據到數據庫中,使用任何瀏覽器或POSTMAN調用該REST端點並查看速度。我正在處理我的數據,並在<200 ms內返回結果 – webDev

+0

是的,我使用Doctrine 2而不是Eloquent,會嘗試Ajax並在幾個報告中回報。 – Noman

+0

我認爲使用默認ORM的最佳組合,但不確定,如果我使用原則,我會看到性能。但是創建一個終點,並打電話到終點,並看到控制檯的速度。 – webDev

回答

0

所以有使用PHP的get_included_files(),事實證明,Laravel被包括一些700文件,我認爲這是罪魁禍首。但是,他們問了一些懶散的人,他們有相似的數字,所以我意識到我在緩存錯誤。首先,我要一直在呼籲的配置緩存查詢後調用優化查詢,按:

php artisan config:cache 
php artisan optimize --force 

果然,這降低了被列入到下500個文件的文件數量。根據懶散的建議,我使用obcache獲取了剩餘的文件並儘可能多地緩存,這也有所幫助。所以現在它運行在可接受的性能上,我想用obcache使用更加精細的策略會加快速度。