- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Господа, имеем такую функцию
Здесь массивы $arr1 и $arr2 из 1400 записей содержат id категории и соответсвенно id родителя.
Задача найти всех детей категорий, то есть без рекурсии тут никак (от 2 до 7 уровней).
Скрипт выполняется для текущих параметров порядка 10 секунд, что очень много.
Как можно ускорить данный участок кода?
кэшируйте вывод и обновляйте кэш при изменении категорий
Кэш само-собой будет подключен на продакшн, интересует именно оптимизация данного участка.
Может не передавать массивы?
сначала привести хотя бы в удобочитаемый вид
функция вообще работает? говнокод какой-то...
Функция работает, что именно не нравится в оформлении? Названия переменных?
Попробуйте массивы в функции обявить как global, и передавать только "текущую позицию".
;7604760']Попробуйте массивы в функции обявить как global, и передавать только "текущую позицию".
Передаются указатели на массивы, так что есть ли смысл?
Передаются указатели на массивы, так что есть ли смысл?
А фиг знает, как оно в PHP реализовано :)
Я бы попробовал.
А сколько всего раз вызывается функция за один проход?
страх
10 секунд
у меня больше 1000 записей меньше 0,5 секунды (может хостер мощный ?)
причем, там такие навороты.
avtorkoda, всё зависит от данных, лежащих в массиве. Одно дело одномерный массив чисел от 1 до 9, и совсем другое - массив полей данных о пользователе, включая рост, вес и возраст и т.п.
Я бы предложил ТС любым способом уходить от такого способа обработки данных. Рискну предположить, что это вы строите дерево категорий, выдернутое из базы, где оно хранится в виде Adjacency list? Есть ведь и другие способы хранения деревьев.
В один проход вызывается от 2 до 10 функций рекурсивно.. глубино рекурсии до 7.
Верно, это дерево каталогов, данные хранятся в виде строк id, parent в каждой.
Пишу не с нуля, так что преобразовывать структуру - никак.