PowerPartners.ru

Форум партнерской программы
Текущее время: 28 мар 2024, 11:54

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: 04 май 2018, 11:50 
Не в сети

Зарегистрирован: 14 авг 2010, 10:53
Сообщения: 88
Решил я на днях немного обновить магазинчик и добавить к некоторым товарам "похожие". К каждому товару в файле с кастомным описанием добавил штук 6 похожих, используя тег TMPL_USE PRODUCT="", вроде как реализуется подобный функционал именно таким образом. Через время яндекс вебмастер выдал критическую ошибку долгого ответа сервера. Проверил - действительно, страницы товаров на которых я не вводил изменения дают ответ за 1100мс, там где добавлено по 6 похожих товаров ответ сервера составил больше 7000мс. Проверял разными сторонними сервисами. Везде беда.

Вот сижу и думаю как реализовано исполнение этого тега что скорость упала в 7-мь! раз. Неужели происходит множество дополнительных запросов xml файла и кастомного xml, на каждый вывод тега TMPL_USE PRODUCT, и чем больше этих тегов на странице - тем ниже будет её скорость?

Прошу высказать ваши идеи и умные мысли, цель - уменьшить время ответа сервера до разумных пределов.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 04 май 2018, 12:06 
Не в сети

Зарегистрирован: 14 авг 2010, 10:53
Сообщения: 88
Хостер по этому делу написал следующее:

Судя по логам в момент запроса указанных страниц происходит обращение к стороннему ресурсу на IP адресе 167.99.215.90:
Вероятнее всего замедление связано с ожиданием ответа от 167.99.215.90. Попробуйте отключить все запросы к сторонним ресурсом и проверьте.

Вот сижу и думаю, на странице с товаром в дефолтном магазине не должно быть запросов к стороннему серверу, откуда он взялся.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 04 май 2018, 12:53 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 2478
В коде магазина нет никаких обращений ни к каким сторонним ресурсам. Единственное, раз в сутки идет обращение к billing.powerpartners.ru.

Вас там часом не поломали? Никакой сторонний php-код не инжектнули?

Может стоит скачать код магазина и перезалить? Папки /custom и /theme не трогайте, так что ваши кастомизации не пострарадают.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 04 май 2018, 13:38 
Не в сети

Зарегистрирован: 14 авг 2010, 10:53
Сообщения: 88
Нет, хостер похоже тупанул и написал то что запрашивается во фронте.
В общем провел небольшой бенч функций, выяснил что долго отрабатывает функция processExtendedTags($text) в продуктах.
Там где добавлены похожие продукты время выполнения 5.893977 секунд, а там где их нет 0.000601, разница более чем существенная! Это время выполнения именно данной функции, буду чекать дальше.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 04 май 2018, 14:36 
Не в сети

Зарегистрирован: 14 авг 2010, 10:53
Сообщения: 88
Нашел проблему, но как исправить не знаю (( У меня кастомный файл shop.xml весит 76кб, если его удалить магаз грузится быстро, с ним ответ сервера очень долгий. Виной тому функция getProductsArrayPHP5, в частности код:

Код:
        $custom_xml = new DOMDocument();
        $custom_xml->load($CUSTOM_SHOP_XML);
        $custom_products = $custom_xml->getElementsByTagName('product');

        foreach($custom_products as $custom_product) {
            $custom_code = $custom_product->getAttribute('code');
            $FOUND = false;

            foreach ($xml->getElementsByTagName('product') as $product)
            {
                if ($product->getAttribute('code') == $custom_code)
                {
                    foreach($custom_product->childNodes as $custom_subnode) {
                        if (($custom_subnode->nodeType == XML_ELEMENT_NODE) && (!in_array($custom_subnode->nodeName, array('price', 'available'), true))) {
                            $nodes = $product->getElementsByTagName($custom_subnode->nodeName);
                            if ($nodes->length > 0) {
                                $product->removeChild($nodes->item(0));
                            }
                            $product->appendChild($xml->importNode($custom_subnode, true));
                        }
                    }
                    $FOUND = true;
                    break;
                }
            }

            if ($ALLOW_THIRD_PARTY_PRODUCTS) {
                if (!$FOUND) {
                    $products_node = $xml->getElementsByTagName('products');
                    $products_node = $products_node->item(0);
                    $products_node->appendChild($xml->importNode($custom_product, true));
                }
            }
        }


он выполняется 7 раз, первый раз для загрузки основного товара, как я понял и остальные 6 раз для загрузки каждого похожего товара. И каждый раз выполняет перебор кастомного xml файла. Причем загрузка XML происходит относительно быстро, а вот цикл перебора массива товаров выполняется безобразно долго. Можно ли это дело как-то оптимизировать?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 04 май 2018, 17:27 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 2478
А вы уверены, что у вас последняя версия движка? Это ж вроде фиксили 100 лет тому назад....


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 04 май 2018, 18:27 
Не в сети

Зарегистрирован: 14 авг 2010, 10:53
Сообщения: 88
Капец, я такой лох :cry: Движок старый. Спасибо!


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 04 май 2018, 18:50 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 2478
На актуальной версии движка нареканий к производительности нет?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 04 май 2018, 19:45 
Не в сети

Зарегистрирован: 14 авг 2010, 10:53
Сообщения: 88
Вообще шикарно, летает как истребитель. Ответ сервера с 7000 мс сократился до 130 мс. Сайт как заново родился :D


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB