это вообще спорные и провокационные утверждения, я просто погонял на php5.1.0 в свое время бенчмарки и на форуме тоже чувак всплывал с бенчмарками почти всех шаблонных движков и у нас с ним выходили какие то ОЧЕНЬ странные результаты типа transformToDoc() + saveXML чуть ли не в 7 раз быстрее чем transformToXML() в 5.1.2 это уже пофиксили насколько я понимаю
в результате я полез в API libxslt и для себя уяснил, что само по себе XSLT преобразование на уровне Cи-кода это цикл а-ля рекурсия, на входе ты имеешь СТРУКТУРЫ ПАМЯТИ, одну XML документ, другую XSL документ и возвращается тебе третья структура, которая получается в результате пробегания по XSL документу и дерганием в соответсвии с правилами
и на основании этого я решил (сейчас немного сомневаюсь), что САМО ПО СЕБЕ такое преобразование должно быть ДОСТАТОЧНО БЫСТРЫМ! ну как минимум сравнимым по скорости со скомпилированным смарти кодом
что основной ОВЕРХЕД это $xsl->ImportStyleSheet(DOMDocument::load(xslFileName));
я просто погонял на php5.1.0 в свое время бенчмарки
и на форуме тоже чувак всплывал с бенчмарками почти всех шаблонных движков и у нас с ним выходили какие то ОЧЕНЬ странные результаты
типа
transformToDoc() + saveXML
чуть ли не в 7 раз быстрее чем transformToXML()
в 5.1.2 это уже пофиксили насколько я понимаю
в результате я полез в API libxslt и для себя уяснил, что само по себе XSLT преобразование
на уровне Cи-кода
это цикл а-ля рекурсия, на входе ты имеешь СТРУКТУРЫ ПАМЯТИ, одну XML документ, другую XSL документ и возвращается тебе третья структура, которая получается в результате пробегания по XSL документу и дерганием в соответсвии с правилами
и на основании этого я решил (сейчас немного сомневаюсь), что САМО ПО СЕБЕ такое преобразование должно быть ДОСТАТОЧНО БЫСТРЫМ! ну как минимум сравнимым по скорости со скомпилированным смарти кодом
что основной ОВЕРХЕД это
$xsl->ImportStyleSheet(DOMDocument::load(xslFileName));
чтобы сильно больше не растекаться мыслью по древу
просто возьми и поиграйся с материалами конференции http://siteware.info/files/phpConf2006.xslt.zip
там папочка есть profiling
запускай php5 xsltproc.php 1000nodes.xsl 1000nodes.xml
cмотри результаты
там кстати конкретный пример того, как можно наебаться всего на 100 нодах с жирными строковыми операциями
Reply
Поиграюсь в свободное время
Reply
Leave a comment