За последние 24 часа нас посетили 22853 программиста и 1260 роботов. Сейчас ищут 787 программистов ...

Оптимизация кода

Тема в разделе "PHP для новичков", создана пользователем NightTrolley, 16 май 2018.

  1. NightTrolley

    NightTrolley Новичок

    С нами с:
    9 май 2018
    Сообщения:
    8
    Симпатии:
    1
    Здравствуйте, нужна помощь по оптимизации кода. Получаю данные от VKAPI за 4 секунды, этим кодом:
    PHP:
    1. $wall_get = $vk->api('wall.get', array(
    2.     'count' => 100,
    3.     'owner_id' => '-' . $group_id,
    4.     'extended' => 1,
    5.     'filter' => 'all'
    6. ));
    Дальше, по идее этот код должен выполнять метод из VKAPI "wall.getComments" и с каждой итерацией передавать по одному id поста полученного кодом выше.
    PHP:
    1. foreach ($wall_get['response']['items'] as $wall) {
    2.        $comm_get = $vk->api('wall.getComments', array(
    3.            'owner_id' => '-' . $group_id,
    4.            'post_id' => $wall['id'],
    5.            'need_likes' => 0,
    6.            'offset' => 0,
    7.            'count' => 100,
    8.            'sort' => 'asc',
    9.            'extended' => 1,
    10.            'field' => 0
    11.        ));
    В принципе он работает и меня все устраивает, но загрузка страницы целых 40 секунд, вещь не приятная. Если закомментировать циклы, то код выполняется за 5-6 секунд. Потому я и начал грешить на циклы. Как бы мне их по умному переработать, а то я уже ума не приложу?
     
  2. t1grok

    t1grok Новичок

    С нами с:
    29 янв 2017
    Сообщения:
    119
    Симпатии:
    32
    Используйте api метод execute c кодом на VKScript.
    Это позволит сократить количество прямых вызовов api.

    Вообще странно, что вы не уперлись в ограничение Too many requests per second. Полагаю вам еще это предстоит)
    И подгружать, как понимаю записи со стены, лучше асинхронно, чтоб основная часть страницы отрисовалась.