Форум на Kuban.ru (http://forums.kuban.ru/)
-   Веб-дизайн и программирование (http://forums.kuban.ru/f1030/)
-   -   Какой цикл будет работать быстрее - opendir с readdir или for с file_Exists? (http://forums.kuban.ru/f1030/kakoj_cikl_budet_rabotat-_bystree_-_opendir_s_readdir_ili_s_file_exists-2371020.html)

ars_2007 20.03.2012 19:05

Какой цикл будет работать быстрее - opendir с readdir или for с file_Exists?
 
Файлы хранятся в виде
1.txt, 2.txt и т.д.

Есть два вариaнта
прочитать каталог с пом.
$handle=opendir('dir');
while (($file = readdir($handle))!=false) **
......

или

For($i=0;$i<1000000;$i++)**
if(file_exists("$i.txt"))**
.......
**else{break;**



--------
какой из вариантов буде работать быстрее?
файлы будут идти строго по порядку.

Искусственный Интеллект1 20.03.2012 19:18

может scandir() поможет [url]http://www.php.su/functions/?scandir[/url]

ars_2007 20.03.2012 20:13

по идее он работает по принципу readdir, к тому же возвращает точки и двоеточия и папки тоже.
Но все равно, интересует что быстрее и желательно то, что меньше грузит процессор.

kowalski 20.03.2012 21:17

glob('dir/*.txt') :)

ars_2007 20.03.2012 23:00

так это шелл.
А шеллы, наскоко мне известно, загибаются, если в папке более трех тысяы файлов.
Да и вопрос стоит - какая из двух быстрее и для проца ненагрузная.

vk 21.03.2012 00:26

Проще взять и проверить. Делов-то на час-другой.
А в БД никак данные не засунуть?

ars_2007 21.03.2012 01:15

[quote=vk;24076259] Проще взять и проверить. Делов-то на час-другой. А в БД никак данные не засунуть? [/quote]
можно, но не хочется. =))
Проверять тоже влом. Может оно на моей файловой системе будет летать, а на иксах тормозить. Тут не угадаешь.
Скорей всего обойдусь for.

vk 21.03.2012 01:47

Как говорится, "For в помощь" =))

lublurtk 21.03.2012 01:49

7-Украинские субтитры >[em]Скорей всего обойдусь for.[/em] - если файла 2.txt не окажется? польз 1 вариантом. а процу вообще [filolog]пох[/filolog].

ars_2007 21.03.2012 02:48

[quote=lublurtk;24076435] 7-Украинские субтитры &gt;Скорей всего обойдусь for. - если файла 2.txt не окажется? польз 1 вариантом. а процу вообще [*****]. [/quote]
Если не окажется, то значит срипт остановит перебор и создаст =))
А процу совсем не ***, т.к. сайтов много, а сервер один, и иногда он бедняга аж гудит. Приходится оптимизировать и кешировать по максимуму. =)


Текущее время: 01:47. Часовой пояс GMT +3.