我想在 Perl 中有一个工具来收集页面加载的有用统计信息(例如,下载时间/速度、CDN 信息、标题、dns 查找、压缩)
有谁知道是否存在或者是否有地方可以学习如何制作一个?
您可能想尝试WWW::Mechanize::Timed,它扩展了WWW::Mechanize模块。::Timed 功能将允许您收集有关您的请求需要多长时间的信息。底层 ::Mechanize 模块本身是 LWP::UserAgent 的子类,可以让您访问响应,包括标题、正文内容和图像。根据这些,您可以计算总页面“权重”、请求数等。这并没有涵盖 YSlow 所做的所有事情(暴露底层 gethostbyname 的 DNS 内部是一个好技巧!)但我希望这是一个开始的地方,如果我已经正确理解了你的问题。
您可以让 perl CGI(或任何 perl 程序)在分析器下运行几次,然后扫描共性。我还没有见过这样的基于 Web 的界面,但是如果您可以控制 perl 方面的事情,那么文档就在这里:
http://www.perl.com/pub/a/2004/06/25/profiling.html
它基本上归结为使用 -d:DProf 运行您的 perl 程序,然后在完成后在同一目录中运行 dprofpp:
# perl -d:DProf ./foo.pl
# dprofpp
更新:
是的,这与协议分析不同,如下所述,但 perl 没有替代品。如果您试图找出缓慢的 perl 部分来自何处,分析 perl 是一个不错的起点。像 YSlow 这样的产品将跟踪它的纯协议方面,无论 CGI 是 perl、php 还是 python。
就我个人而言,我用它来分析我的 django 站点,它是在 python 和 flash 中的,我将它们与系统的协议部分分开分析,我也使用 YSlow。
此外,还有用于“ddd”的 perl 插件,它至少可以使其图形化:
http://www.gnu.org/software/ddd/
抱歉,如果这不能解决确切的问题,我想知道是否也有一个 perl 接口来整理它,但我知道这是我开始寻找的地方......