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交易参数有误,该笔交易暂时无法完成,请联系商家解决

我要说说
网上宾友点评