7
votes

LINQ à XML Performance

J'ai entendu dire que Linq à XML ait des problèmes de performance et certains de mes amis m'a recommandé de ne pas l'utiliser dans mon application. Je n'ai pu trouver rien de pertinent sur MSDN et je ne veux pas compter sur "un blog Internet". Est-ce que quelqu'un connaît un point de vue officiel sur cette question ou une source fiable?


3 Réponses :


4
votes

Just Google Linq vs xmlreader Vous l'aurez.

Le résultat supérieur, http://www.nearinfinity.com/blogs/joe_ferner/ Performance_LINQ_TO_SQL_VS.HTML , conduit à une conclusion qu'il est plus lent à celui de XMLReader (bien sûr, car LINQ2XML est construit sur XMLreader), mais IMHO Il est bien meilleur que acceptable, car vous gagnez la flexibilité et la facilité à lire /code.


0 commentaires


13
votes

Utiliser LINQ vers XML lira tout le fichier en mémoire.

Si vous lisez un énorme fichier XML (centaines de mégaoctets), c'est un problème.
Au lieu de cela, vous pouvez utiliser un xmlreader brut, qui fournit une vue en avant uniquement d'un fichier XML et ne lit pas le fichier entier à la fois.

Si vous traitez avec des fichiers XML de taille normale, LINQ to XML ira bien.

LINQ to XML est plusieurs commandes de grandeur plus faciles à utiliser que xmlreader.
Vous ne devez utiliser que xmlreader si vous savez que vous ferez affaire avec 200 Mo de fichiers XML, ou si vous avez mesuré vos performances et que vous avez prouvé que le constructeur xdocument est trop lent.


1 commentaires

Microsoft fournit des exemples sur la manière de diffuser l'entrée / la sortie d'un fichier XML à l'aide de LINQ vers XML afin de ne pas finir de chargement de la totalité du fichier en mémoire uniquement de petits morceaux de celui-ci: msdn.microsoft.com/en-us/library/...