кэширование DOM-дерева

dfilatov

Новичок
кэширование DOM-дерева

Очень хочется иметь возможность кэширования объекта DOM-дерева, дабы он не парсился каждый раз при создании. Кроме сериализации/десериалиализации ничего в голову не приходит. Но php не умеет сериализовывать объекты не user-defined классов.
Есть мысли?
 

dfilatov

Новичок
Десериализация из строки и парсинг xml должны сильно отличаться по "стоимости". Не зря в других языках можно кэшировать dom-дерево.
 

dfilatov

Новичок
.net
java

-~{}~ 03.09.07 23:18:

Я наверное переформулирую задачу - нужно хранить скомпилированный шаблон xsl в каком-то виде, как позволяют делать более "взрослые" платформы.
 

olpa

Новичок
Десериализация из строки и парсинг xml должны сильно отличаться по "стоимости". Не зря в других языках можно кэшировать dom-дерево.
Surprisingly, the performance results presented below indicate that a textual representation of XML is a far more efficient representation than a serialized DOM representation. Also, the time required to externalize a DOM representation and reparse the textual form is cheaper than the direct Java serialization and deserialization of the DOM.

Build distributed applications with Java and XML
http://www.javaworld.com/jw-02-2000/jw-02-ssj-xml.html
 

slach

Новичок
что в общем не удивительно...

насчет кеширования XSL
http://slach.livejournal.com/229240.html
глянь там по ссылкам

народ вроде как реальный прирост получает
 

dfilatov

Новичок
Залез в исходники typo3, ничего про кэширование xslt-шаблонов не нашел.
 

ustas

Элекомист №1
dfilatov
ты говорил про dom и xml, в typo3 у меня в кеше все xml файлы в сериализованном виде, плохо смотрел.
 

Alexandre

PHPПенсионер
неуж-то??
что-то я в .НЕТ - этого не встречал, хотя вроде как 2005 SQL Сервер хранит XML в распарсенном (сереализованном) виде, т.е. принципиально возможно. Можно пример класса/метода?

Про яву не скажу, уж давно на ней не программировал.

dom реализован посредством libxml2. Какая из функций АПИ libxml2 - может осуществить сереализацию/десеариализацию DOM дерева?
 

slach

Новичок
Alexandre ты плохо смотрел

http://support.microsoft.com/kb/325689
сюда глянь для начала

и в Java (Saxon) и в .NET (MSXML) есть Cached XSLT трансформации

dfilatov??? почему демон отдельный НЕ КАТИТ??? обосснуй???
 

dfilatov

Новичок
потому что это фреймворк, он должен работать без запуска отдельных демонов
 

olpa

Новичок
потому что это фреймворк, он должен работать без запуска отдельных демонов
И без MySQL тоже?

Насколько я знаком со внутренностями libxslt, если хочется кешировать скомпилированный xslt, то демон -- это единственный способ. Но, опять же, я сильно сомневаюсь, что от этого будет заметный выигрыш. Проще заоптимизировать сам xslt.
 

dfilatov

Новичок
Может и без MySQL. PostgreSQL или MSSQL например :) Кому как нравится.

Xslt уже оптимизирован по самые помидоры. Тормозов пока нет. Но на будущее хочется иметь запас прочности.
 
Сверху