2017-01-20 5 views
0

私はPHPコードとは別の2つの同じWebページを持っています。 1つはSimpleXMLを使用し、もう1つはDOMDocumentを使用します。コードはxmlファイルを編集します(読み込み、ノードの追加、ノードの削除)。私が使用してノードを削除しなければならないのSimpleXMLでノードを削除したSimpleXMLとDOMDocumentとの比較

unset($node); 

のDOMDocumentでは、しかし、私が使用:SimpleXMLをは、その簡潔に有利思えますが

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

、それは追加を取って終わりますSimpleXMLを使用するページをロードするのに0.4秒(どちらのページも同じphp行数)。

このパフォーマンスの違いは何故ですか?それはそれを駄目にするunset()関数ですか?

答えて

1

SimpleXMLは、DOM実装自体が使用する同じDOM XMLライブラリ上の抽象化です。 C言語で実装されている抽象概念です.Cレベルでのいくつかのアクションと、シンタックスシュガーを追加するだけで、より遅いものを組み合わせたSimpleXMLの方が速いということです。

XMLで多くの操作を行う場合は、XSLTを使用する方がより高速なソリューションになる可能性があります。

すべての最適化と同様に、測定し決定する必要があります。

関連する問題