由mod_perl执行文件操作比在CGI中执行文件操作慢
|
我有一个在cgi上运行的应用程序。我已经将其移植到mod_perl2(使用apache2 :: compat)并将cgi文件重写为mod_perl处理程序。奇怪的是,由于mod_perl而获得的性能被日志记录中的延迟所遮盖。
应用程序中的日志记录机制类似于logger-> logmsg(msg)
记录器:: logmsg
{
我的$ msg =班次;
打开LOGFILE,\“ >> logfile \”;
打印日志文件$ msg
关闭LOGFILE;
}
应用程序完成了许多日志记录,并由不同级别的日志记录控制。当我关闭日志记录功能时,mod_perl上的事务处理速度比cgi上快80%(代码库是相同的。我只是使用mod_perl的处理程序和cgi的网关脚本运行)。当我在mod_perl上打开日志记录应用程序时,运行速度降低了80%。
从日志中,我可以看到相同的日志模块作为cgi脚本运行时,将msg附加到文件中的时间为0.01秒,而通过mod_perl处理程序运行时为.03秒。
我尝试了不同的方法,例如使用STDOUT并将其重定向到日志文件,使用request_obj-> log方法等,但我无法超越cgi花费的时间。我在这种方法上做错什么了吗?
在同一apache服务器中通过mod_perl脚本执行文件时,为什么文件操作会慢3倍?
任何指针都受到高度赞赏。
谢谢。
没有找到相关结果
已邀请:
1 个回复
扑北爱
)来获取时间戳,该时间戳是cgi中的三倍。这具有减缓作用。 但是,我不确定为什么在通过cgi而不是modperl运行时,apche能够以最快的速度执行三次系统命令。 很抱歉问题中的错误信息。