phpのopenlogのコストを見る

phpのopenlogのコストを見る。

$start = microtime(true);
openlog("myScripLog", LOG_PID, LOG_USER);
for($i=0; $i<100000; ++$i){
syslog(LOG_INFO, 'opened');
}
echo 'time past '.(microtime(true) - $start);

これで結果が

time past 0.901854038239

対して時間がかかってない。

今度は毎度ログを開き直す。

$start = microtime(true);
for($i=0; $i<100000; ++$i){
openlog("myScripLog", LOG_PID, LOG_USER);
syslog(LOG_INFO, 'opened');
closelog();
}
echo 'time past '.(microtime(true) - $start);

time past 2.22855091095

うーん、二倍ちょっとのコストになっちゃった。

ここでcloselogのコストが気になったので。

<?php
$start = microtime(true);
for($i=0; $i<100000; ++$i){
 openlog("myScripLog".rand(0,1), LOG_PID, LOG_USER);
 syslog(LOG_INFO, 'opened'.$i);
 //closelog();
}
echo 'time past '.(microtime(true) - $start);

%php syslog.php
time past 1.11285591125

意外にも早いぞ。

どうやらcloselog()しなければ早くいけるのか?な?

コメントを残す