最近はglobって便利だし、opendirよりすっきりするからいいなーと思って結構使っていたのですが、
ベンチマークとってるサイトみると、opendirの方が早いみたいですね。
で、試しにソースをコピって自分のVMWare上でベンチマーク取ってみたのですが、
「あれ、globの方が早くね?」
ファイル数の問題かも知れないですが、1K程のcsvを150ファイル程置いて試してみたところ
平均的にはglobの方が早かったです。
requireしてるファイルの容量は関係ないと思うんで、
やっぱファイル数かな。
150ファイルって結構多いと思うんですが、
何ファイルだったらopendirの方が早くなるのかなー。
暇な時にその辺もベンチ取れたらなーと思います。
つっても、opendirよりglobの方が綺麗に書けるから、
自分的にはglob推奨していこうと思います。
ベンチ取ったソースは下記の通り。
<?php
//Waste a little time to offset PHP's startup.
for($i=0; $i<20; $i++) {
print ' ';
}
$start_time = time()+microtime(true);
ob_start();
for($x=0; $x < 20; $x++) {
$dir = 'cache/';
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
//Include the file
include($file);
}
closedir($dh);
}
}
}
ob_end_clean();
print ((time()+microtime(true)) - $start_time). ' (opendir time)<br />';
$start_time = time()+microtime(true);
ob_start();
for($x=0; $x < 20; $x++) {
//Include the function files
foreach (glob("cache/*.html") as $file) {
//Include the file
include($file);
}
}
ob_end_clean();
print ((time()+microtime(true)) - $start_time). ' (glob time)<br />';
?>