在Web应用程序,我分割字符串并分配给链接的名称或字符串的集合。是否有显著的性能优势,以使用StringBuilder的Web应用程序?

编辑:2层的功能:分裂链接到5-10字符串。然后分装到另一个字符串中。我还追加一个串在一个时间到链路每次链接被点击。

有帮助吗?

解决方案

多少字符串会被你串联?你知道到底有多少会出现,或者它依赖于多少条记录在数据库等?

请参阅我对更多的细节和指引这一主题文章 - 但基本上,在一个Web应用程序是使得以多么昂贵字符串连接是VS使用一个StringBuilder没有差别。

编辑:恐怕这仍然不是从问题,你在做什么完全清楚。如果你有一组固定字符串来连接,你可以做到这一切一气呵成,那么它的速度更快,可能更具可读性使用连接来做到这一点。例如:

string faster = first + " " + second + " " + third + "; " + fourth;

string slower = new StringBuilder().Append(first)
                                   .Append(" ")
                                   .Append(second)
                                   .Append(" ")
                                   .Append(third)
                                   .Append("; ")
                                   .Append(fourth)
                                   .ToString();

另一种替代方法是使用过程的格式串。这很可能是最慢的,但大多数可读:

 string readable = string.Format("{0} {1} {2}; {3}",
                                 first, second, third, fourth);

你的问题提的“添加链接的每个时间”建议使用该方面的一个StringBuilder虽然的一部分 - 这事情自然会导致一个循环更有效(对中度到大量)使用StringBuilder的

其他提示

您应该看一看通过乔恩斯基特这个优秀的文章了解连接字符串。

是,串联串定期是昂贵的(真的附加上串上的另一端部)。每一个字符串改变时,.NET删除旧字符串,并创建一个新的包含新值。这是一个不可变对象。

编辑:

的StringBuilder应谨慎使用,并且像任何其他方法进行评价。在一起有时connactenting两个字符串会更有效,并且应该通过个案基础上进行评估。

阿特伍德具有与此相关的一个有趣的文章。

为什么会表现为在Web应用程序或一个winforms应用程序的任何不同?

使用StringBuilder的是因为内存和对象分配,该规则适用无论你为什么要构建代码的良好做法的问题。

如果你正在做与迭代次数的循环中的字符串,那么它的使用StringBuilder的一个好主意。否则,字符串连接是你最好的选择。

首先,你还在写这个应用程序?如果是的话那么STOP性能调优! 其次,优先正确性了速度。可读性是显而易见的原因,从长远来看,路更重要。 第三,我们不知道确切的情况和你的代码编写。我们真的不能劝你,如果这条微优化是你的代码或没有的性能非常重要。度量上的差异。我强烈建议红门蚂蚁探查。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top