i ont un problème de performance avec XML et ListView:Performance avec XML et ListView
i ont un fichier XML avec environ 12000 noeuds (oui, il est très bien, mais tous les nœuds sont nécessaires). Ce fichier a la structure suivante:
<?xml .... ?>
<MyRootNode>
<node name="name1" lang="en" artist="aaa" genre="dsdsds" dsadasd="dsdsd" />
...
<node name="name12000" lang="en" artist="aaa" genre="dsdsds" dsadasd="dsdsd" />
</MyRootNode>
et je besoin de charger ce document dans ListView:
XmlDocument Doc = new XmlDocument();
Doc.Load("MyDoc.xml");
string[] SubItems = new string[4];
foreach(XmlNode Node in Doc.DocumentElement.ChildNodes)
{
SubItems[0] = Node.Attributes["lang"].Value;
SubItems[1] = Node.Attributes["artist"].Value;
SubItems[2] = Node.Attributes["genre"].Value;
SubItems[3] = Node.Attributes["dsadasd"].Value
MyListView.Items.Add(Node.Attributes["Name"].Value).SubItems.Add(SubItems);
}
Ce processus prend environ 10 secondes et il est trop long. Existe-t-il des moyens d'améliorer les performances d'une telle opération? J'ai essayé d'utiliser Microsoft Parallel Extensions Juillet 2008 CTP, mais cela n'a rien changé, peut-être parce que cette opération ne peut pas être divisée en 2 threads séparés. Et où est la plus grande question de performance dans ce code?
essayez d'éviter foreach, utilisez pendant que ou pour – eugeneK