【问题标题】:How do I optimize schemaDocument.Namespaces code for performance?如何优化 schemaDocument.Namespaces 代码以提高性能?
【发布时间】:2010-08-10 10:55:53
【问题描述】:

我有这个代码被调用了数千次,我需要优化它的性能。 我考虑过缓存 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;
    }

【问题讨论】:

    标签: c# xml namespaces


    【解决方案1】:

    既然您要在 xmlQualifiedNames 中查找字符串 (Namespace),那么缓存这些字符串怎么样?

    或者使用 LINQ 在其中搜索?

    或者 - 取决于你得到的输入类型 - 使用记忆来加速你的调用(真的只是花哨的缓存)like in this article.

    【讨论】:

      【解决方案2】:

      将其放入 DictionaryHashtable 甚至是某种缓存机制中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-27
        • 2021-03-24
        • 2014-10-08
        • 1970-01-01
        • 1970-01-01
        • 2016-12-20
        • 2012-04-26
        相关资源
        最近更新 更多