XML - статьи

Насколько успешно вычислительный XSLT справляется с реальными финансовыми отчетами?


Как уже объяснялось, скорость стадии компиляции не является критической, но надо иметь в виду, что даже при правилах, более сложных, чем изложенные выше, сотни формульных функций создаются приблизительно в течение 10 секунд. Для компилятора гораздо важнее создать быстрый XSLT. XSLT-индексы (использующие <xsl:key>) существенно меняют дело, как, собственно, любое кэширование вызывов функций в XSLT-процессоре. Например, функция может вызываться 50 раз с одними и теми же аргументами. Если результат первого вызова кэширован, следующие 49 вызовов считываются из кэша. Парсер Saxonica 8.1, используемый в данном случае, поддерживает кэширование.

Пакет из 8000 реальных документов в формате XML (один документ - одна компания), каждый из которых содержал данные для 170 элементов ввода за 15 периодов, был преобразован в 8000 файлов с 336 вычисленными элементами для тех же периодов. Некоторые формулы обращались к вычисленным элементам, формулы которых, в свою очередь, также обращались к вычисленным элементам, и так вплоть до семи уровней обращения к исходным данным. Вычисление отсутствующих данных и правила регулирования периодов были более сложными, чем обсуждаемые в настоящей статье; также применялись пересчет в годовое исчисление и форматирование. Сорок пять миллионов вычислений были сделаны в течение семи часов, что хорошо соответствует ожиданиям автора и сопоставимо с другими способами обработки. Условия были следующими. Программное обеспечение: файлы Saxonica 8.1 JAR были встроены в облегченное приложение Java 1.4; JVM (Java Virtual Machine - виртуальная машина Java) работала в среде Windows 2000. Оборудование: персональный компьютер с процессором 3GHz и тремя гигабайтами оперативной памяти.



Содержание раздела