我正在使用一个使用Perl的网络应用程序,我需要考虑加速部分应用程序。
我以为我会开始剖析我想调查的部分的特定电话。我已经做了一些关于剖析Perl代码的搜索,但不幸的是,我发现的大部分内容都表明我应该使用-d:DProf myapp从命令行运行我的perl代码。这对我来说不是很有用,因为我的代码是在一个网络应用程序中。我确实找到了一种方法来使分析工作与apache一起工作,但不幸的是,从Profiler返回的“最常用”模块都是CPAN模块 – Class :: xyz等等。不是很有帮助。
有人知道一个很好的方法,除了我将“定时器”代码注入到我想要描述的方法,只针对这些方法?我曾经想过编写一个测试脚本并进行剖析,但是由于我正在编写的代码的性质,需要比我希望做的更多的工作。
解决方法
你尝试过
Devel::NYTProf(比Devel :: DProf好多了),它可以在Apache下工作吗?你使用哪个网络服务器?这是一个香草CGI脚本,一个mod_perl的东西,还是别的什么?
如果您正在进行数据库操作,则DBI::Profile可以对您的查询进行基准测试,这在另一个程序中正在发生。
然而,真正的诀窍是组织代码,以便您可以进行全面的测试和分析,而无需将其全部放在一起,以找出一些缓慢的事情。这在短期内不会帮助你打火,但是从长远来看,它不会阻止事物变火。还有各种方法来伪造网络服务器环境等,但这是一个不同的问题。