Как оптимизировать код schemaDocument.Namespaces для повышения производительности? - PullRequest
0 голосов
/ 10 августа 2010

У меня есть этот код, который вызывается тысячи раз, и мне нужно оптимизировать его для повышения производительности.Я думал о кэшировании xmlQualifiedNames, но это не достаточно хорошо.есть идеи?

    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;
    }

Ответы [ 2 ]

0 голосов
/ 10 августа 2010

, поскольку вы ищете строки (Namespace) внутри xmlQualifiedNames, как насчет их кэширования?

Или с помощью LINQ для их поиска?

Или - в зависимости оттип ввода, который вы получаете - использование напоминания для ускорения ваших вызовов (на самом деле просто модное кэширование) , как в этой статье.

0 голосов
/ 10 августа 2010

Заполните его Dictionary или Hashtable или даже каким-нибудь механизмом кэширования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...