Генерирование большой страницы. Потеря данных.

crystal_vv

Новичок
Генерирование большой страницы. Потеря данных.

Есть скрипт который рисует дерево пользователей в виде "степунек" (просто через "<br>" и "пробел").
Дерево хранится в базе в виде множества подмножеств.
Проблема:
При большом количестве пользователей в ветке (2000), страница рисуется неполностью. Часть дерева обрезается.
На хостинге: MS IIS+PHP5

На локальном сервере (Apache 2.2.6+PHP5) дерево отрисовывается полностью вся страница за 0.6 сек.

Подскажите как решить проблему.
 

crystal_vv

Новичок
time_limit = 30
Скрипт на локале работает 0.6 сек.

Нашел Error: превышение времени выполнения.
Теперь надо научится рисовать дерево без рекурсии. Думаю там собака зарыта.
 

rotoZOOM

ACM maniac
crystal_vv То есть ты действительно думаешь, что если реализуешь алгоритм нерекурсивно, то время выполнение значительно сократится ?
 

crystal_vv

Новичок
именно. Уже сделал.
один запрос - один цикл - дерево построено.
Время еще не замерял. Но чисто логически один цикл быстрее чем два вложенных в рекурсивной функции.

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

Замерил время: 0,3 сек. итого время улучшилось в два раза.
 

rotoZOOM

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

crystal_vv

Новичок
я убрал рекурсивную функцию.
То есть я реализовал вывод дерева без рекурсии и в моем случае получилось быстрее чем с рекурсией.
Может я вас не совсем понимаю?
 

rotoZOOM

ACM maniac
Понимаешь, когда говорят я переделал что-то без рекурсии, это обычно означает, что был рекурсивный алгоритм, а человек его переделал в нерекурсивный, например с использованием своего стека. Сложность алгоритма от этого не меняется, чуть-чуть может увеличиться скорость и исчезнет рост программного стека, зато увеличится потребление памяти из кучи.
Ты же, как я понял, не просто переписал рекурсивный алгоритм, а изменил сам алгоритм работы. То есть изменил его сложность работы. И, естественно, это повлияло на сложность.
 
Сверху