Что быстрее DOMXML или конкатенация?

cray

Guest
Что быстрее: DOMXML или конкатенация?

Вопрос назрел потому что я пишу движок на PHP для сайта и все данные внутри скрипта (до возврата браузеру) формируются в виде XML, а потом это все с помощью XSLT парсицца и отдаецца браузеру. Вот по поводу формирования этого самого XML я и хотел узнать. Он у меня формируется конкатенацией выводов различных модулей и пихается в переменную (точнее так было раньше, теперь выводы всех модулей пихаюцца в ассоциативный массив, так немного удобнее). Но при таком способе формирования теряется определенная гибкость (в любое время я не могу добавить какую-нить веточку в любое место, что иногда бывает нужно).
С помощью DOMXML, конечно, об этих недостатках можно забыть, но насколько он медленнее??? Просто что-то мне подсказывает, что он мееедленнннеее..., что реализация такой спецификации должна быть аппетитной к ресурсам проца :)

Вот так было раньше:
PHP:
	$_XML .= "<news>\n";
$_XML .= "<post_date>".timestamp2date($rowset[$i]['post_date'])."</post_date>\n";
$_XML .= "<caption>".$rowset[$i]['caption']."</caption>\n";
$_XML .= "<body>".$rowset[$i]['body']."</body>\n";
$_XML .= "<poster_name>".$row['name']."</poster_name>\n";
$_XML .= "<poster_email>".$row['email']."</poster_email>\n";
$_XML .= "</news>\n";
Вот так я переделал:
PHP:
	$_XML['mod_news']['main'] .= "<news>\n";
$_XML['mod_news']['main'] .= "<post_date>".timestamp2date($rowset[$i]['post_date'])."</post_date>\n";
$_XML['mod_news']['main'] .= "<caption>".$rowset[$i]['caption']."</caption>\n";
$_XML['mod_news']['main'] .= "<body>".$rowset[$i]['body']."</body>\n";
$_XML['mod_news']['main'] .= "<poster_name>".$row['name']."</poster_name>\n";
$_XML['mod_news']['main'] .= "<poster_email>".$row['email']."</poster_email>\n";
$_XML['mod_news']['main'] .= "</news>\n";
 

slach

Новичок
:) а ты попробуй...

тестик проведи...

типа 1000 элементов в строку
и 1000 узлов в DOM

а потом еще XSLT на это накати... погляди на разницу...

и тесты сюда с исходниками закинь
доброе дело сделаешь и себе и людям
 

cray

Guest
ну я ж че спрашивал: лень мне переделывать все модули, если я не знаю "рентабельности". Ок, как ЦМС-ка подойдет к логическому первому релизу, то сделаю и тест...

А с XSLT оно уже успешно работает... (не зря я тода твою аську выцепил, гы-гы) :)

А кстати, как время засекать правильнее??
Я юзаю микротайм:
PHP:
$time_start = microtime(true);
// ===-----
// some actions
// ===-----
$time_end = microtime(true);
if (DEBUG) echo "<!-- DEBUG: script execution time is ".($time_end-$time_start)." seconds -->\n";
 
Сверху