我想在每个文件的开头和结尾自动调用用户定义的函数。这将包括被请求的脚本以及该脚本中的每个 include。
这样做的目的是创建一个调试工具,记录每个文件执行所花费的时间。将存储每个文件开始和结束的微时间,以在脚本执行结束时报告结果。
[编辑] 我花了一些时间查看 xhprof 和 xdebug
Xdebug 无法工作,因为我无法在运行时打开和关闭它(我们当前的调试系统允许我们在 URL 中传递一个属性,它作为 session 变量打开/关闭调试,最终在底部显示分析数据加载后的页面 - 这非常有用)
Xhprof 更接近,尽管它不允许我分解每个函数调用,也不允许传递附加调试信息以附加到分析元素。例如,我有一个用于所有查询的 mysql 查询用户定义函数 - 我想将实际查询传递给配置文件元素,以便我可以在页面中识别较重和较轻的查询(我知道我可以记录查询同样,只是想展示我如何从这个要求中受益)。另一个示例是将传入、传出函数数据和我想跟踪的任何其他调试信息附加到配置文件元素。
目前,我手动跟踪开始时间、结束时间和其他调试信息,方法是在将数据发送到通用函数的每个函数中放置代码行,将其保存在全局变量中,并在脚本输出后将其作为调试数据吐出。我将其扩展到脚本、模板等。我希望避免在每个函数、脚本、模板中手动输入数据。我希望它需要为每个函数独有的一些数据完成,但是重复的东西(开始、结束时间)不应该在每个令人讨厌的查询中输入大声笑。
最佳答案
我强烈建议您查看 Xdebug而是帮助您调试代码。自己动手只会让你抓狂!
Xdebug 可以做到function traces开箱即用等等。
例如:
// start tracing function calls to file
xdebug_start_trace('/path/to/trace_file.txt');
// your code here
xdebug_stop_trace();
关于PHP:在每个文件的开头和结尾调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13902363/