Каждая новая версия X-Cart перед выпуском проходит тест на быстродействие. Тестирование происходит на инстансе Amazon версии t2.micro (1 процессор, 1 PHP поток, 512 Мб оперативной памяти). В тестируемом магазине 2000 товаров, 100 категорий (10 корневых, по 10 подкатегорий в каждой), 1000 пользователей и 1000 заказов. Приложение jMeter имитирует одновременные действия троих покупателей, создающих 50 запросов.

При тестировании измеряется время до получения последнего байта: с момента, когда браузер запрашивает страницу, до момента, когда html код этой страницы полностью загружен. Приемлемое время загрузки:

  • Домашняя страница - менее 1,5 секунд;
  • Страница категории - менее 1,5 секунд;
  • Страница товара - менее 2 секунд.

Для тестирования производительности сайта воспользуйтесь https://www.webpagetest.org.

Как ускорить работу магазина

1. Включите CSS, JS агрегирование и кэширование графических элементов

В панели управления магазина откройте страницу Интерфейс / Производительность и отметьте опции:

  • Объединять CSS файлы в один служебный CSS файл (включите для лучшей производительности,
  • Объединять JS файлы в один служебный JS файл (включите для лучшей производительности),
  • Использовать кэширование виджетов (включите для лучшей производительности)

Первые две настройки объединяют большинство CSS файлов в один CSS файл и большинство JS файлов в один JS файл. Благодаря этому браузер делает не 50-100, а всего 2-5 запросов серверу, чтобы полностью получить CSS стили и JS скрипты.

Когда X-Cart агрегирует CSS и JS файлы, результат кешируется. Если изменить JS/CSS файлы прямо в файловой системе после того, как они попали в кеш, изменения не отобразятся. Чтобы увидеть изменения, очистите кеш агрегации кнопкой Очистить кеш агрегации на странице Интерфейс / Производительность.

Настройка Использовать кэширование виджетов (включите для лучшей производительности) активирует внутренее кэширование классов просмотра, что значительно ускоряет загрузку страниц, содержащих статические данные (страниц товаров и категорий). Это позволяет избежать вычислений, когда содержимое не изменялось.

Когда X-Cart использует екеш аиджетов, статический коньент сохраняется в временном кеше. После релактирования контента (описаний товаров, заголовков, изображений), удалите кеш виджетов кнопкой Очистить кеш виджетов на странице Интерфейс / Производительность. Тогда изменения отобразятся в магазине. Если не удалить кеш, изменения вступят в силу, но через некоторое время.

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

7.jpg

2. Отключите ненужные модули

Каждый установленный и активированный модуль увеличивает время работы PHP. Поэтому отключение ненужных модулей повышает скорость загрузки магазина.

3. Используйте сеть доставки контента

Сеть доставки контента не сокращает время работы скриптов X-Cart, а ускоряет передачу изображений, CSS и JS файлов в браузер пользователя.

Воспользуйтесь модулем:

4. Применяйте сжатие

Активируйте сжатие html кода в панели управления хостинга. Например, в Cpanel есть опция Optimize website.

Если у вас свой сервер, активируйте PHP библиотеку сжатия zlib. На Apache сервере установите mod_deflate (для Apache 2.0.x) или mod_gzip (для Apache 1.3.x)/

Если Nginx управляет статическими файлами прямо на сайте, включите gzip сжатие для таких файлов, внеся дополнительные директив в файл конфигурации Nginx. Пример:

# enable gzip compression
gzip on;
gzip_min_length  1100;
gzip_buffers  4 32k;
gzip_types    text/plain application/x-javascript application/javascript text/xml text/css;
gzip_vary on;
# end gzip configuration

5. Используйте актуальную версию PHP (5.5 и выше)

X-Cart тестировался на разных версиях PHP и на новых версиях (5.5, 5.6) он действительно работает быстрее. С переходом на PHP 5.5 и выше скорость магазина увеличивается в два раза. PHP 7.0 поддерживается только X-Cart 5.3 и новее.

For ealier versions of X-Cart you can use PHP 5.5+ as they are not compatible with PHP 7.

6. Используйте кэширование запросов MySQL

Кэширование запросов ускоряет обработку запросов к базе. Чтобы ускорить и оптимизировать отклик MySQL сервера, добавьте следующие конфигурационные директивы:

SET GLOBAL query_cache_size  = 268435456;
SET GLOBAL query_cache_type  = 1;
SET GLOBAL query_cache_limit = 1048576;

Эти же настройки можно прописать в файле конфигурации MySQL. Информация

7. Установите оригинальное расширение mbstring (PHP)

Стандартное полизаполнение Symfony для mbstring в X-Cart работает медленнее, чем оригинальное расширение, особенно если активирована опция Прикреплять к уведомлениям PDF-версию счета. Установка расширения mbstring ускоряет ряд процессов в работе магазина.

Дополнительная информация