首先,这是一个.net 2.0 DLL,通常由.NET 4.0+应用程序调用。 (它是2.0,因为这是一个商业图书馆,许多仍然在2.0 - 3.5)。
我们有一些情况,我们有一个字符串或StringBuilder,需要一个子字符串。在各种地方,它是4种组合中的任何一种(source = string或StringBuilder,new object = string或StringBuilder)。我们遇到的问题是我们的程序使用了大量的内存,并且大约4条指令存在的所有临时字符串都使垃圾收集器工作了很多。
我提出的最好的是(我们的代码不是这样编写的,我只是简单地说明这一点:
string srcString =“感谢您的帮助”;
StringBuilder srcStrBldr = new StringBuilder(“感谢您的帮助”);
问题:
有更好的方法吗?如果它正在使用.NET 2.0类,那么能够访问StringBuilder.m_StringValue将允许我编写上述所有不创建临时字符串对象的代码。我可以用反射做到这一点,但这需要时间,然后让我在速度与内存使用权的交易。而且,如果内部代码发生变化(不太可能,但可能),该怎么办。
那么......有什么建议吗?