SimpleXML против DOMDocument с удалением узлов

У меня есть две идентичные веб-страницы, кроме php-кода. Один использует SimpleXML, а другой использует DOMDocument. Код редактирует XML-файлы (чтение, добавление узлов, удаление узлов).

С SimpleXML я должен удалить узлы, используя:

unset($node);

Однако с DOMDocument я использую:

$node->parentNode->removeChild($node)

Несмотря на то, что SimpleXML выглядит выигрышно из-за его краткости, в итоге на загрузку страницы, использующей SimpleXML, уходит дополнительно 0,4 секунды (обе страницы имеют одинаковое количество строк php).

В чем причина такой разницы в производительности? Это функция unset (), которая утомляет это?

0

Решение

SimpleXML — это абстракция в той же библиотеке XML DOM, которую использует сама реализация DOM. Но это абстракция, реализованная в C. Это означает, что здесь будут ситуации, когда SimpleXML быстрее, потому что он комбинирует несколько действий на уровне C, и другие, где он медленнее, потому что он просто добавляет синтаксический сахар.

Если вы выполняете много манипуляций с XML, использование XSLT может оказаться еще более быстрым решением.

Как и все оптимизации, вы должны измерить и решить.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector