самый быстрый кэш в памяти для XslCompiledTransform - PullRequest
2 голосов
/ 05 марта 2009

У меня есть набор файлов таблиц стилей xslt. Мне нужно создать самую быструю производительность XslConpiledTransform, поэтому я хочу сделать представление этих таблиц стилей в памяти.

Я могу загрузить их в коллекцию в памяти как IXpathNavigable при запуске приложения, а затем загрузить каждый IXPAthNavigable в одноэлементное XslCompiledTransform при каждом запросе. Но это работает только для стилей, без xsl: import или xsl: include. (Xsl: импорт только для файлов).

также я могу загрузить в кеш много экземпляров XSLCompiledTransform для каждого шаблона. Разумно ли это?

Есть ли другие способы? Что лучше? Какие еще советы по улучшению производительности процессора MS Xslt?

Ответы [ 2 ]

3 голосов
/ 06 марта 2009

После успешного выполнения Load() в экземпляре XslCompiledTransform этот экземпляр можно кэшировать для достижения лучшей производительности .

Помните, что Load () - очень дорогая операция.

1 голос
/ 30 апреля 2010

Вместо компиляции и кэширования XSL-преобразований во время выполнения вы можете использовать инструмент MS SDK xsltc.exe (XSL-компилятор) для генерации сборок.

Во время выполнения ваше приложение будет либо динамически загружать эти сборки (или вы можете просто добавить статические ссылки в ваше приложение), и вызывать перегруженный метод XslCompiledTransform.Load (тип System.Type), чтобы загрузить тип, скомпилированный в XSL. сборка.

Это самый быстрый способ, так как вы не платите за компиляцию времени выполнения - только во время сборки / компиляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...