Вопрос про скорость работы – феном vs не феном
Нравится феном, но скорость нравится больше. Собственно вопрос к знатокам, что лучше: писать всё на феном, всё по старинке, или совмещать, оставляя тот вариант, который быстрее работает?
Пимеры:
P.s. Вопрос именно про то, как сниппеты вызывать.
Пимеры:
{!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. Вопрос именно про то, как сниппеты вызывать.
Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Условия же на феноме всегда быстрее
Что касается смешивания — смешивать точно не надо, во первых стандартный парсер запускается раньше, чем парсер фенома, из за чего сначала обработаются стандартные теги, во вторых рискуете нарваться на множество ошибок (например если плейсхолдер генерирует сниппет в стандартном парсере, то этот плейсхолдер не доступен для парсера фенома)
Ну а вообще на практике удобство и адекватный дебагер (в феноме) перевешивает скорость, к тому же на реальном проекте скорость отличается не значительно (прям очень не значительно).
Единственная рекомендация у фенома все плохо с вложенными чанками, по этому чем меньше вложенность — тем лучше, используйте лучше блоки
Парсер MODX запускается перед феномом только для обработки кэшируемых тегов. Вообще парсинг выглядит так:
1. Запускается парсер MODX и обрабатывает кэшируемые теги. Феном теги остаются необработанные.
2. Запускается парсер фенома, если есть теги Fenom.
3. Запускается парсер MODX и обрабатывает некэшируемые теги пока они есть. Нераспарсенные не удаляются.
Пункты 2 и 3 могут выполняться в цикле до 10 раз, если есть нераспарсенные теги.
4. Запускается парсер фенома, если есть теги Fenom.
5. Запускается парсер MODX и обрабатывает некэшируемые теги пока они есть. Нераспарсенные теги удаляются.
Пункты 4 и 5 пункт могут выполняться в цикле до 10 раз, если есть нераспарсенные теги.
Многие, наверно, обращали внимание на тормоза, если указан несуществующий плейсхолдер.
Выглядит эта конструкция, мягко говоря, как вид жопы сбоку. У этих парсеров разный принцип работы. По хорошему, разработчикам MODX нужно или вообще отказываться от парсера и просто дать возможность пользователям самим выбирать (я сделал маленький шажок в эту сторону) или дорабатывать его до более-менее функционального уровня (я это тоже пробовал).
Я бы посоветовал использовать оба парсера так:
— юзать только кэшируемые теги MODX ([[*tag]], [[$chunk]], [[++system]], [[snippet]]). Хорошо для оптимизации.
— для остального использовать феном.
В этих режимах парсеры не пересекаются.
Сравнивать тысячные доли? Это даже не погрешность, это погрешность погрешности. Пять раз обнови страницу, и пять раз цифры будут разные даже не меняя код.
Я когда переходил не феном тоже сравнивал. Разницы в скорости при вызове сниппетов через стандартный синтаксис и через феном никакой.
И на его исходники — github.com/bezumkin/ModxPro
На родном парсере MODX я такое и близко не сделаю.