我有一個在cgi上運行的應用程序。我已經將它移植到mod_perl2(使用apache2 :: compat)並將cgi文件重寫爲mod_perl處理程序。奇怪的是,由於mod_perl而獲得的性能超過了日誌記錄中的延遲。當mod_perl執行文件操作比CGI中執行文件操作慢
在應用程序中的記錄機制是像logger-> logmsg(MSG)
記錄器:: logmsg { 我的$味精=移位; 打開LOGFILE,「>> logfile」; print LOGFILE $ msg 關閉LOGFILE; }
有很多應用程序進行記錄,並且由不同級別的日誌記錄的控制。當我關閉日誌記錄時,事務在mod_perl上比在cgi上快80%(代碼庫相同,我只是使用mod_perl的處理程序和cgi的網關腳本運行)。當我打開mod_perl上的日誌應用程序運行速度降低了80%。
從日誌中,我可以看到相同的日誌模塊需要0.01秒因爲當作爲CGI腳本和救援人員到場時mod_perl處理器運行0.03秒運行追加味精成文件。
我嘗試了多種不同的方法,如使用STDOUT和重定向到相同的日誌文件,使用request_obj->日誌法等,但我不能擊敗由CGI所花費的時間。有什麼我做錯了這種做法?通過mod_perl的腳本在同一個Apache服務器執行時
爲什麼文件操作慢3倍。
任何指針,非常感謝。
謝謝。