2008-12-10 5 views
2

У нас есть один большой xslt, который отображает целую область магазина, включая продукты, проявители, и делает фильтрацию на основе цены и катехии поверх этого. Я использую sitecore как CMS, и у меня проблемы с кешированием. У меня около 9000 предметов, а некоторые страницы занимают до 20 секунд для рендеринга. Будет ли лучше разделить xslt на более мелкие части? Увеличивает ли скорость скорость?Один большой xslt на более мелкие более зернистые

Я думаю, что используемый ситцером xslt двигатель называется Nexus.

Update:

Я думаю, что нам нужно оптимизировать XSLT. Несмотря на то, что было около 9 тыс. Элементов, профайлер sitecore показал, что мы на самом деле пересекаем около 250 тыс. Элементов, выполняя различные проверки.

ответ

4

вы, вероятно, получаете лучшую производительность, применяя другие изменения, чем разделение XSLT-файла. Не видя XSLT это трудно определить узкие места, но вы найдете некоторые рекомендации для выполнения XSLT здесь:

http://www.dpawson.co.uk/xsl/sect4/N9883.html#d15756e150

Кроме того, это может быть очень полезно использовать XSLT профайлер в этом случае.

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

Если бы вы могли написать свой XSLT-код, я могу помочь вам найти возможные узкие места.

1

Похоже, проблема связана с sitecore, а не с XSLT (я сделал более быстрые преобразования против 10-х строк K), но я бы посоветовал расщепить в общем случае включить повторное использование кода.

0

Есть два разных вопроса здесь:

  • Разделительные XSLT файлы для лучшей читаемости, ремонтопригодности и повторного использования кода
  • Создание улучшения производительности ваших XSLT переводов

Первое должно быть сделано, как лучшая практика, последний должен позаботиться о расширенных сроках рендеринга, которые вы получаете

1

Разделяя один огромный r вы можете использовать кеширование Sitecore. Наличие нескольких визуализаций позволит применять индивидуальные настройки кеша к каждому.

0

Определенно использовать как можно меньше XSLT. Это просто хорошая практика и не может повредить производительность.