О производительности парсеров XML, XSLT в PHP

hdd

Новичок
О производительности парсеров XML, XSLT в PHP

Есть мысль организовать разаботку сайта таким образом:
- Верстальщик создаёт XSLT-шаблон страницы, который перед использованием преобразовывается в статический HTML файл (чтобы не парсить каждый раз при загрузке страницы одно и то же).
- Динамические блоки страницы, которые должны всегда генериться на страницы на основе данных из БД или чего угодно (например список онлайн юзеров) будут каждый раз проводиться через XSLT шаблон, на странице их будет немного и сами по себе эти блоки небольшие.

Возник вопрос по поводу производительности парсеров XSLT на серверной стороне, на PHP. Насколько это всё может затормозить сервер. Также интересно, какой из существующих парсеров сейчас самый быстрый (ставить могу что угодно, сервер мой, желательно только чтобы и под Win он тоже был, для разработки).

Есть альтернативный вариант — загружать XSLT документ на клиент (используем только IE, и отрисовывать через JavaScript). В принципе это бы меня устроило, но я никак не могу решить проблему кеширования файлов в IE. Дело в том, что при разных настройках кеширования у юзера может остаться старый шаблон, и ничего работать не будет, до нажатия Ctrl + F5. Хотелось бы, чтобы обновления XSLT и JS файлов проходили для юзеров прозрачно, т.е. как-то говорить IE, что нужно по-любому обновить файлы.

Буду весьма признателен, прочитав что-нить дельного по обоим вопросам :)
 

Alexandre

PHPПенсионер
Возник вопрос по поводу производительности парсеров XSLT на клиентской стороне, на PHP. Насколько это всё может затормозить сервер
затормозит но не на столько, что это будет смертельно для сервера. Нагрузка какая?

Также интересно, какой из существующих парсеров сейчас самый быстрый
msxml.dll

Есть альтернативный вариант, но я никак не могу решить проблему кеширования файлов в IE.
в чем проблема, у меня с кешированием не было проблем... выставляй правильные заголовки и все.

т.е. как-то говорить IE, что нужно по-любому обновить файлы.
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, no-store, must-revalidate, max-age=5");
 

hdd

Новичок
Про msxml.dll имеется в виду на стороне клиента? А на серверной стороне какой парсер предпочтительнее в плане скорости и поддержки стандартов?

Приложение довольно загружено, очень много интерактива с пользователями, но опять же оговорюсь, сами блоки для парсинга будут не оч. большими. Грубо говоря парсить придётся "часто, но мало".

По поводу заголовков:
Если я выставлю там дату последнего обновления JS и XSL файлов, IE проверит дату файла в кеше, и если надо, заберёт его с сервера? Я ещё не экспериментировал, но есть подозрение, что это будет работать не всегда, могу и ошибаться...
 

Alexandre

PHPПенсионер
Про msxml.dll имеется в виду на стороне клиента? А на серверной стороне какой парсер предпочтительнее в плане скорости и поддержки стандартов?
hdd вопрос был - какой парсер, а не какой парсер для пхп. Яснее излагай мысли. пхп вообще не использует msxml.dll, так как это межплатформенное решение. На стороне клиента, тоже нельзя привязываться к msxml.dll, так как 5% сидит на маках и 1,5 % на прочих ОС.

Самый быстрый на стороне сервера: пара XMLReader XMLWriter или SAX.

Приложение довольно загружено, очень много интерактива с пользователями, но опять же оговорюсь, сами блоки для парсинга будут не оч. большими. Грубо говоря парсить придётся "часто, но мало".
ну и проблема-то в чем?
По поводу заголовков:
Если я выставлю там дату последнего обновления JS и XSL файлов, IE проверит дату файла в кеше, и если надо, заберёт его с сервера? Я ещё не экспериментировал, но есть подозрение, что это будет работать не всегда, могу и ошибаться..
Для JS может работать не всегда, это особенность Ослика. Для XSL файлов должна работать
 

hdd

Новичок
вопрос был - какой парсер, а не какой парсер для пхп. Яснее излагай мысли
Если внимательно прочитать, будет видно, что я спросил именно про PHP
ну и проблема-то в чем?
Проблемы нет. Вопрос был о том насколько такие частые, но мелкие преобразования могут загрузить проц. сервера, целесообразно ли это, может кто-то делал также и может дать отзыв о таком подходе. Вот собственно и всё.
 

Alexandre

PHPПенсионер
Если внимательно прочитать
извини дорогой, я не телепат, додумывать за тебя...
Вопрос был о том насколько такие частые, но мелкие преобразования могут загрузить проц. сервера
если не сервере кроме твоего апача ничего нет, то это будет незначительная загрузка.

Если помимо апача, еще висит БД (а это часто практикуется), то надо смотреть на сколько загружена БД, но все-же нагрузка незначительна и на глаз не заметна (если нет иной кривизны ).

Если помимо твоего сайта еще на хостинге висит три сотни таких-же, то тут уж извини - идет конкуренция за ресурсы...и прогнозировать трудно.
 

slach

Новичок
Alexandre =) причем тут XMLReader\Writer? человек про XSLT спрашивает =)

какие есть варианты то??

php5 = libxslt
php4 = sablotron
однозначно под linux или кроссплатформенно

альтернативы
и MSXML через COM под win32 (он быстрее)

еще есть Saxon через интеграцию с Java но думаю что он проигрывает им обоим

что касается конкретных benchmark
http://www.google.ru/search?q=xslt+parser+benchmark
 

Alexandre

PHPПенсионер
еще есть Saxon через интеграцию с Java
есть еще и Xalan для Java...

Alexandre =) причем тут XMLReader\Writer? человек про XSLT спрашивает =)
ну во первых, чтоб использовать XSLT, необходимо сформировать XML, а быстрее всего его сформировать XMLReader\Writer.

Для трансформации libxslt самый быстрый вариант.

альтернативы
и MSXML через COM под win32 (он быстрее)
быстрее, т.е. исп. msxml.dll, о чем я и говорил...
но забываешь время на связь с COM объектом. Хотя, если виндовозный хостинг, то очевидно затраты малы.
 
Сверху