2013-11-01 2 views
0

У нас есть ~ 20000 папок, хранящихся в нашей локальной сети, в основной папке, которую я буду называть «папкой», они подразделяются на группы по 1000 в папках с именем 1000-1999, 2000-2999 и т. Д. ... если существует папка - скажем, 5416 , Я хочу вернуть ссылку на него.PHP Является ли это более эффективным или не стоит беспокоиться?

Мой вопроса:

Первоначально я вращался через пункты в «папке», если они были каталог, я разобранное имя текущей папки, чтобы получить нижние и верхние границы, по сравнению ли папка Искали для (5416) попадает в верхнюю и нижнюю границы текущей папки и проверяется, существует ли в ней 5416.

У меня нет проблем с производительностью, но мне пришло в голову, что, возможно, взламывание строк и выполнение сравнений было более дорогостоящим, чем использование PHP-файлов.

Мысли?

+1

Если бы я был на твоем месте я бы бросить вместе быстрый тест и посмотреть, каковы были результаты. Моя кишка говорит мне, что разница будет минимальной. – Mike

+0

Сначала сделайте это, затем сделайте это правильно, затем сделайте это лучше. Но у него есть стоимость: время. – user1254498

+0

Если все папки соответствуют именам, скорее всего, просто заменить '416' в' 5416' на '000' (просто сделать, переведя в целое число и вычитая' 5416% 1000'), конвертировать назад для строки и добавить '-5999', а затем просто сравнить имя каждой папки с этим значением. Что-то в строках '$ folderToFind = '5416'; $ tmp = intval ($ folderToFind); $ tmp = $ tmp - ($ tmp% 1000); $ bounds = ''. $ tmp .'- '. ($ tmp + 999); ' – jonhopkins

ответ

0

file_exists() должен быть очень недорогой операцией. Также обратите внимание, что file_exists создает собственный кеш для повышения производительности.

См: http://php.net/manual/en/function.file-exists.php

От: file_exists() is too slow in PHP. Can anyone suggest a faster alternative?

+0

CJ - Я думаю, что самые большие вычислительные затраты придут в # звонков через мою локальную сеть, но я должен проверить - хотя я уверен, что вы правы в строгом смысле - люди, которые написали функции std, безусловно, сделали их более эффективными чем то, что я мог бы написать .. следовательно, моя? – user294382

Смежные вопросы