2012-04-21 31 views
1

在本地食品银行的管理员应用程序中,我构建了一个PHP脚本来从MySQL数据库生成一组每月报告统计信息。看起来,如果脚本没有运行一段不确定的时间,则需要几秒钟的时间才能运行。一旦运行,脚本的后续运行将花费几分之一秒。我试图找出造成漫长第一轮运行的因素以及我是否有任何控制权。我的发展体系和食品银行的主机之间的行为是可比较的,所以它不仅仅是一个本地现象。脚本处理时间的第一次运行

我已经尝试过“清空表”和“重置查询缓存”,但我无法重现长期运行。关闭并重新启动MySQL服务器也是如此(只有在开发系统上才有可能)使运行时间更长。

我可以在哪里看?

谢谢。

+0

你需要给我们更多的工作,现在我们所能做的只是随机猜测 – Jasper 2012-04-21 13:57:22

+1

你还必须考虑OS文件系统缓存和虚拟内存系统。 PHP文件将在第一次从光盘读取,但在后续运行时从文件系统缓存中读取。 PHP引擎也将被读入内存,并将从那里调用,而不是从光盘加载。 – GordonM 2012-04-21 14:00:41

+0

我可以看到磁盘访问如何成为cli的一个因素。它无法解释PHP用于获取初始和后续时间的远程主机的行为。 – geoB 2012-04-21 14:20:14

回答

1

在这种情况下,我的第一个停靠港是通过分析脚本来了解花费的时间。你说你可以在本地复制问题。在这种情况下,给自己一个探查器(xDebugZend Debugger既可以配置脚本,也可以配置其他脚本)并对脚本进行配置以查看时间。

+0

一个有趣的概念 - 但我不清楚xDebug将如何帮助我专注于第一次运行处理时间。任何参考,我可以阅读这个? – geoB 2012-04-21 14:20:39

+0

@geoB请参阅xDebug的链接。它解释了如何启动和运行分析。它的输出应该告诉你哪些消耗最多的时间,并帮助你研究如何改进它。 – liquorvicar 2012-04-21 14:25:15

+0

Doh!我在上面。我预计在我学到任何有用的东西之前需要几天的时间。将报告调查结果。日Thnx。 g – geoB 2012-04-21 15:16:09

相关问题