PHP

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.交流群: PHP+JS聊天群

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

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

  • PHP的換行符是什麽

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

我要說說
網上賓友點評