2010-08-10 9 views
0

J'ai ce code qui est appelé des milliers de fois et j'ai besoin de l'optimiser pour la performance. J'ai pensé mettre en cache xmlQualifiedNames mais ce n'est pas suffisant. des idées?Comment optimiser le code de schemaDocument.Namespaces pour les performances?

private static string GetPrefixForNamespace(string ns, XmlSchema schemaDocument) 
    { 
     string prefix = null; 
     XmlQualifiedName[] xmlQualifiedNames = schemaDocument.Namespaces.ToArray(); 
     foreach (XmlQualifiedName qn in xmlQualifiedNames) 
     { 
      if (ns == qn.Namespace) 
      { 
       prefix = qn.Name; 
       break; 
      } 
     } 

     return prefix; 
    } 

Répondre

0

puisque vous recherchez des chaînes (Namespace) à l'intérieur du xmlQualifiedNames, que diriez-vous de les mettre en cache?

Ou utilisant LINQ pour rechercher dans eux?

ou - selon le type d'entrée que vous obtenez - en utilisant memoization pour accélérer vos appels (vraiment juste de la mise en cache de fantaisie) like in this article.

0

Stuff dans un Dictionary ou Hashtable ou même un certain mécanisme de mise en cache.

Questions connexes