1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Рекурсивный поиск и обработка

Тема в разделе "Программирование", создана пользователем The Last Winged, 28.04.05.

  1. The Last Winged

    The Last Winged Активный участник

    12.552
    375
    Собственно есть программа, которая смотрит файлы при запуске в определенной папке и изменяет их :vcrazy: . Однако рекурсивный просмотр и изменение занимает много ресурсов машины, делать приходится неоднократно.Как можно распределить этот процес(ну например, обрабатывать пол-папки и т.д.)?
     
  2. AlTk

    AlTk Читатель

    10.692
    0
    "рекурсивный просмотр и изменение занимает много ресурсов машины"
    как вы это выяснили?
    во время выполнения рекурсии (в отличии от реккурентного алгоритма) используется память (стек) для хранения переменных и осуществляется множество вызовов и возвратов из функций, опять же память(стек) и время на выполнение перехода - где там "много ресурсов"?

    ПС. может алгоритм неправильно написан?
     
  3. The Last Winged

    The Last Winged Активный участник

    12.552
    375

    по времени =)
    обход всего дерева каталогов и проверка файлов данного типа занимает много времени... файлов ОЧЕНЬ много...
    делаю на пхп(именно так ;) ) для никсов, ссылка не помогла :(

    Если сделать список файлов и записать их в один файл, то файл будет ОГРОМНЫМ, да и сами файлы будут обновляться, меняться их кол-во =\
     
  4. m4a1

    m4a1 Участник

    249
    0
    мало данных о сабдже...

    если нужно вылавливать изменен ли файл или нет - то не думаю, что вызов функции filemtime() для каждого файла будет занимать много времени.

    как вариант можно сохранять состояние всех переменных и объектов с помощью serialize, например, а потом возвращаться к сохраненной точке при следующих вызовах.

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

    вообще в таких случаях рекурсия конечно удобна и ее легче организовать ;), но если представить количество вложенных итераций, то становится жаль сервер :upset:
     
  5. Mix

    Mix Активный участник

    7.768
    0
    Любая рекурсия может быть заменена циклом. Только эффект непонятен. В общем наверно надо действительно смотреть алгоритм. Скорее всего что-то там не так.