发现有帐号才能登录,我就发下面的
因为论坛的正常发帖有时会超过2s,最严重的能延迟到21s才能返回结果。正常状态下0.2s可以结束。
为了能够了解发帖 程序的流程消耗的时间,我在source/include/post/post_newthread.php 里插入了timer,
特别是这一段
?1
源代码第281行 左右(我插了时间函数,所以建议你们查找下),
然后我继续深入,即
?1
代码实现在 source/class/model/model_forum_thread.php。
我在这个newthread的函数内部的头部 和尾部 也插入了timer代码。
?1
然后替换服务器的同一文件,生产环境下会把时间统计结果 记录在一个日志文件上。
跑了半天,把日志文件下到本地进行分析,得到结果如下。
?1
[dbinsert] 是第一张图片的代码包裹的测试结果
[block]是第三张图片 对函数实现的代码包裹的测试结果
注意红线,上面一条是正常的,下面是不正常,表明 发帖提交后花了10s才返回结果。而且dbinsert是10000ms,而block才不到100ms。
我想知道 这个时间差 是消耗到哪里去的?