Собственно есть программа, которая смотрит файлы при запуске в определенной папке и изменяет их :vcrazy: . Однако рекурсивный просмотр и изменение занимает много ресурсов машины, делать приходится неоднократно.Как можно распределить этот процес(ну например, обрабатывать пол-папки и т.д.)?
"рекурсивный просмотр и изменение занимает много ресурсов машины" как вы это выяснили? во время выполнения рекурсии (в отличии от реккурентного алгоритма) используется память (стек) для хранения переменных и осуществляется множество вызовов и возвратов из функций, опять же память(стек) и время на выполнение перехода - где там "много ресурсов"? ПС. может алгоритм неправильно написан?
по времени =) обход всего дерева каталогов и проверка файлов данного типа занимает много времени... файлов ОЧЕНЬ много... делаю на пхп(именно так ) для никсов, ссылка не помогла Если сделать список файлов и записать их в один файл, то файл будет ОГРОМНЫМ, да и сами файлы будут обновляться, меняться их кол-во =\
мало данных о сабдже... если нужно вылавливать изменен ли файл или нет - то не думаю, что вызов функции filemtime() для каждого файла будет занимать много времени. как вариант можно сохранять состояние всех переменных и объектов с помощью serialize, например, а потом возвращаться к сохраненной точке при следующих вызовах. при больших количествах файлов будет меньше головной боли, если вести историю измененных файлов и потом уже работать с ней, а не со всем деревом. вообще в таких случаях рекурсия конечно удобна и ее легче организовать , но если представить количество вложенных итераций, то становится жаль сервер
Любая рекурсия может быть заменена циклом. Только эффект непонятен. В общем наверно надо действительно смотреть алгоритм. Скорее всего что-то там не так.