Thinkphp新手參考文章:框架寫完項目運行超慢,慢如龜速的解決辦法

字號+ 編輯: 国内TP粉 修訂: IT男在阿里 來源: 2023-09-12 我要說兩句(0)

講述幾個thinkphp開發時遇到的坑。如果你是老手,那這篇文章對你沒什麽用處。

剛接觸ThinkPHP時,覺得很新鮮,但做項目使用thinkphp後速度很慢,慢如龜速,有時在想國産的框架用的人那麽多,怎麽會這麽慢,PHP不該這麽運行慢的。

經過多方查找,發現了個槼律,只要是在PHP5.3環境下的PHP都運行很慢,這與PHP版本有關?經測試發現問題。

PHP遇到了執行效率問題,經測試和排查跟編譯版本和mysqlnd關係並不大,解決方法還是需要從代碼本身入手。

ipv4和ipv6同時啓用的沖突

將PHP連接數據庫語句中的代碼直接用IP表示

$dbhost = 'localhost'

改爲:

$dbhost = '127.0.0.1'

在ThinkPHP中,連接數據庫的代碼:

'DB_HOST' => 'localhost', //數據庫主機

改爲:

'DB_HOST' => '127.0.0.1', //數據庫主機

如果同時開啓了ipv6和ipv4,並且解析到了localhost這個關鍵字上,會産生沖突。在代碼配置裡改一改會解決數據庫連接卡的問題。

隱形BUG多,PHP主版本<7且有大量的Notice錯誤沒有排除

一般來說, 小夥伴們在拿php寫東西,難免會遇到一些小錯誤,例如找不到數組對應的鍵值之類的。而php的特性是比較皮實的,不會因爲這點問題就崩掉。Thinkphp3.x默認會把錯誤寫在日志文档裡,這樣外面的人看不到原本斑駁的錯誤了,很開心。

因此,需要找出項目文档夾中runtime/log子目錄裡面的日志文档,搜索Notice關鍵字。隨著訪問日志/測試強度的增加,你有可能會找到許多notice錯誤提示。

例如:undefined offset報錯,數組下標找不到;該用isset()函數做判斷的地方沒有判斷……等等問題。根據這些notice錯誤提示來摸索,依此排除掉這些錯誤,而不要忽略這些報錯,是使用Thinkphp這類框架提高訪問速度的最佳辦法。

重構代碼, 將PHP3升爲PHP5

如果App邏輯代碼不是很多很複雜的話, 當然是升一下框架。業務代碼多那就算了。

閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    2

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • mac開發接入微信公衆號接口返回報錯 cURL error 56: SSLRead() return error -9806

  • PHP的換行符是什麽

  • pecl安裝程序時報錯Array and string offset access syntax with curly braces is no longer supported

  • 由於商家傳入的H5交易參數有誤,該筆交易暫時無法完成,請聯繫商家解決

我要說說
網上賓友點評