处理StringBuilder对象
如何有效地处理StringBuilder
对象? 如果用户一次性生成多个报告,我的应用程序最终会占用大量内存。
我在线阅读了几个网站,以下内容可能有所帮助:
StringBuilder sb = new StringBuilder(1000000); // loop goes here adding lots of stuff to sb exampleObject.Text = sb.ToString(); sb.Length = 0;
最后一行真的有帮助吗? 还有其他任何处理方法吗?
注意:这并没有真正阻止我的用户继续使用该应用程序。 我只是想知道是否有办法避免冗余内存使用。
不, StringBuilder
是纯粹的托管资源。 你应该摆脱对它的所有引用。 其他所有东西都由垃圾收集器处理:
StringBuilder sb = ...; // ... do work sb = null; // or simply let it go out of scope.
在.NET中,没有确定性delete
(比如C ++,可以释放分配给单个对象的内存。)只有GC可以释放内存。 通过放弃对对象的所有引用,您可以让GC能够在需要时释放对象。 您可以通过调用System.GC.Collect
方法强制执行垃圾回收。 但是,除非您真的知道自己在做什么,否则不建议使用GC进行操作。 GC很聪明。 强迫它很少有益。
如果要生成许多报告,可以考虑重新使用单个StringBuilder,而不是为每个报告分配一个新的报告。
除非“过度使用内存”是一个问题,否则我会保持原样而不用担心。
在大多数情况下,.NET足够智能,以避免在有足够内存可用时进行垃圾回收。
上述就是C#学习教程:处理StringBuilder对象分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/961127.html