由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倍? 任何指针都受到高度赞赏。 谢谢。     
已邀请:
        这不是文件IO本身的问题。有一个系统调用(
date +%Y%m%d
)来获取时间戳,该时间戳是cgi中的三倍。这具有减缓作用。 但是,我不确定为什么在通过cgi而不是modperl运行时,apche能够以最快的速度执行三次系统命令。 很抱歉问题中的错误信息。     

要回复问题请先登录注册