Вопрос про скорость работы – феном vs не феном

Нравится феном, но скорость нравится больше. Собственно вопрос к знатокам, что лучше: писать всё на феном, всё по старинке, или совмещать, оставляя тот вариант, который быстрее работает?
Пимеры:
{!msMiniCart | snippet}  –  9  –  0.0013354  –  0.0080540
[[!msMiniCart]]  –          2  –  0.0004439  –  0.0057619
{!officeAuth | snippet : Array ( [groups] => user ) }  –  11  –  0.0016625  –  0.0151730
[[!officeAuth &groups=`user`]]	                       –   3  –  0.0003973  –  0.0012989
Не рыл сильно глубоко, но думаю примеров с такой разницей можно еще достаточно найти.
P.s. Вопрос именно про то, как сниппеты вызывать.
Konstantin
24 апреля 2018, 18:46
modx.pro
1 990
+1

Комментарии: 7

Андрей
24 апреля 2018, 23:24
0
На небольших сайтах разницы особо нет, выше 500-1000 ресурсов уже стоит переходить на Fenom — https://docs.modx.pro/components/pdotools/parser#Тестирование-производительности
    Pavel Zarubin
    25 апреля 2018, 00:58
    0
    Скорость фенома зависит от множество факторов, если разрабатывать сайты в админке — стандартный синтаксис быстрее, если брать файловую структуру, то феномовские файлы быстрее чем статичные ресурсы.
    Условия же на феноме всегда быстрее
    Что касается смешивания — смешивать точно не надо, во первых стандартный парсер запускается раньше, чем парсер фенома, из за чего сначала обработаются стандартные теги, во вторых рискуете нарваться на множество ошибок (например если плейсхолдер генерирует сниппет в стандартном парсере, то этот плейсхолдер не доступен для парсера фенома)

    Ну а вообще на практике удобство и адекватный дебагер (в феноме) перевешивает скорость, к тому же на реальном проекте скорость отличается не значительно (прям очень не значительно).
    Единственная рекомендация у фенома все плохо с вложенными чанками, по этому чем меньше вложенность — тем лучше, используйте лучше блоки
      Сергей Шлоков
      25 апреля 2018, 08:54
      3
      +5
      стандартный парсер запускается раньше, чем парсер фенома, из за чего сначала обработаются стандартные теги
      Не путай человека.
      Парсер MODX запускается перед феномом только для обработки кэшируемых тегов. Вообще парсинг выглядит так:
      1. Запускается парсер MODX и обрабатывает кэшируемые теги. Феном теги остаются необработанные.
      2. Запускается парсер фенома, если есть теги Fenom.
      3. Запускается парсер MODX и обрабатывает некэшируемые теги пока они есть. Нераспарсенные не удаляются.
      Пункты 2 и 3 могут выполняться в цикле до 10 раз, если есть нераспарсенные теги.
      // В сниппет попадёт распарсенный тег феном
      [[!snippet? param=`{$value}`]]
      4. Запускается парсер фенома, если есть теги Fenom.
      5. Запускается парсер MODX и обрабатывает некэшируемые теги пока они есть. Нераспарсенные теги удаляются.
      Пункты 4 и 5 пункт могут выполняться в цикле до 10 раз, если есть нераспарсенные теги.
      Многие, наверно, обращали внимание на тормоза, если указан несуществующий плейсхолдер.

      Выглядит эта конструкция, мягко говоря, как вид жопы сбоку. У этих парсеров разный принцип работы. По хорошему, разработчикам MODX нужно или вообще отказываться от парсера и просто дать возможность пользователям самим выбирать (я сделал маленький шажок в эту сторону) или дорабатывать его до более-менее функционального уровня (я это тоже пробовал).

      Я бы посоветовал использовать оба парсера так:
      — юзать только кэшируемые теги MODX ([[*tag]], [[$chunk]], [[++system]], [[snippet]]). Хорошо для оптимизации.
      — для остального использовать феном.
      В этих режимах парсеры не пересекаются.
        Pavel Zarubin
        26 апреля 2018, 01:26
        0
        Ого, круто, спасибо, я не ковырял исходники, а проверял эксперементальным путем, видимо когда эксперементировал как раз наткнулся на кейс с кэшируемыми тегами :)
      Сергей Шлоков
      25 апреля 2018, 08:59
      1
      +4
      Данные по запросам к БД вызывают сомнение. Почему они разные?

      Сравнивать тысячные доли? Это даже не погрешность, это погрешность погрешности. Пять раз обнови страницу, и пять раз цифры будут разные даже не меняя код.

      Я когда переходил не феном тоже сравнивал. Разницы в скорости при вызове сниппетов через стандартный синтаксис и через феном никакой.
        Konstantin
        25 апреля 2018, 09:27
        0
        Разница в скорости меня тоже не сильно напрягает, потому-что действительно какие-то тысячные доли, а вот количество запросов к БД существенно отличается, а я не знаю почему.
        Василий Наумкин
        25 апреля 2018, 21:31
        +1
        Можно посмотреть на реально феномовый проект — dev.modx.pro
        И на его исходники — github.com/bezumkin/ModxPro

        На родном парсере MODX я такое и близко не сделаю.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          7