这确实是我自从去年5月份开始接触 ThinkPHP 之后遇见的最让我无语的一个问题,对一个优秀的框架的误解和怀疑都让一个配置给完全左右。
在接触这款 PHP 框架的时候,它就号称自己是一个轻量级的框架,于是我信了,其实还有另外的原因,中国的大部分中小企业开发 PHP 项目的时候,大部分都在使用 ThinkPHP 这款框架,好评众多,因此我也想当然也是这么想的,也是这么学的。
可是我写出来的应用,只要涉及到有数据增删改查的页面,显示时间都是在1秒钟以上,我记得最过分的是有的页面会达到6秒钟左右。在学 ThinkPHP 之前我并没有深入学习 PHP,除了用 curl 写了个抓取新闻的网页和留言性质的告白墙之外,对 PHP 的运行机制和运行效率并不知晓,姑且以为 ThinkPHP 的1-6秒左右的运行时间是正常的吧,只是感觉到这个框架并不是特别高效。
最近在做毕业设计,我的打算是这个设计产品除了用来让我毕业我还打算运营起来,但是写了半天,发现越来越卡,每个页面基本上要等待2秒左右才可以打开,这还是我本机搭建的服务器,网络延迟约等于0,如果真的让这种产品去生产,简直会毁掉一切用户体验,而且看起来这个框架还很浪费资源。确实怀疑起这个框架和自己的代码了。
在此前,我开启了 trace 可以看到页面打开时间,和各种行为的占用时间:
很明显,这里占用时间最长的是 exec ,占用了1.019,而页面累积使用了1.063秒。
这个 exec 虽然不知道是个啥,但是根据字面意思大约应该是执行查询的时间,后来因为太郁闷,然后去群里问了一下,终于找到了解决方法。只需要修改一个配置。
在 config.php 文件中,把 localhost 修改为 127.0.0.1 。
然后,运行时间变成这个样子了:
简直是太狗血了。
出现这种情况的原因大概就是因为如果计算机配置了 IPV6 的 IP 地址的话,localhost 会首先去解析 ::1 的 IPV6 的解析,但是这个解析显然不是正确的,然后才会去解析 IPV4 的 127.0.0.1 ,这1秒钟的时间就出来了。
不过,在实际部署的服务器环境中应该不会出现这种情况,多出在本地的生产环境,然而生产环境显然也很重要,代码写的不爽,怎么高效生产。
因此,让我感觉自己的智商被涮的感觉,就是在写了接近1年的 TP 应用,我居然一直在跟 localhost 玩浪费1秒钟的 IPV6 解析,甚至有几次在服务器环境上部署也出现过这种问题。
感谢你的赏识与认可
支付宝
微信支付
使用手机访问这篇文章
本文许可协议 © CC BY-NC-SA 4.0 转载请注明来源
- 上一篇: ThinkPHP模板输出常量的方法及网站面包屑导航的制作
- 下一篇: 最终还是决定毕业吧。。。
是呀,生产环境很重要,要不代码也写得不爽。