Hangi hızlıdır: glob () veya opendir ()

4 Cevap php

Hangi (hızlı glob arasında) ve opendir (), yaklaşık 1-2K dosya (lar) okumak için?

4 Cevap

http://code2design.com/forums/glob_vs_opendir

Bu dizini işleyicisi açılır ve yineleme sağlar gibi Açıkçası opendir daha hızlı (ve) olmalıdır. Glob () o zaman yürütme katacak olan subdirs tarama olacak yani özyinelemeli dizinleri kolları biraz daha zaman (artı topak alacak ilk argüman ayrıştırmak için vardır çünkü.

glob ve opendir farklı şeyler yapmak. glob Bir desen eşleştirme pathnames bulur ve opendir sadece bir dizin tanıtıcı döndürür iken, bir dizide bu döndürür. glob Eğer bu desen eşleştirme dahil, özellikle kıyaslama dikkate almak zorunda ek fonksiyonları, aramak zorunda olduğu gibi aynı sonuçları almak için.

Bill Karwin Son zamanlarda bu konuda bir makale yazmıştır. Bkz:

Biraz test ile cevap olabilir başka bir soru. i içinde 412 şeylerle uygun bir klasör vardı, ama sonuç olarak çok fazla değişiklik olmamalıdır, düşünün i:

igor47@whisker ~/test $ ls /media/music | wc -l
412
igor47@whisker ~/test $ time php opendir.php 
414 files total

real    0m0.023s
user    0m0.000s
sys 0m0.020s
igor47@whisker ~/test $ time php glob.php 
411 files total

real    0m0.023s
user    0m0.010s
sys 0m0.010s

O mükemmel bir karşılaştırma ama glob() siz de kabuk gibi desenleri dahil sağlar mı emin değilim nerede opendir daha hızlı yaparak orada dizinleri doğrudan olduğu gibi.