【发布时间】:2013-09-16 23:43:06
【问题描述】:
我有一个条件,即 StringBuilder 不断存储与大型平面文件(100 MB)中的模式匹配的行。但是,在达到条件后,我将 StringBuilder 变量的内容写入文本文件。
现在我想知道我是否应该通过重置对象来使用相同的变量 ->
stringBuilder.delete(0,stringBuilder.length())
或
stringBuilder=new StringBuilder();
请就性能和OOM问题提出您认为哪个更好。
【问题讨论】:
-
作为参考,
delete()调用执行System.arraycopy。 -
您应该根据您的应用程序工作流程进行基准测试,并选择最适合您的。
-
@SotiriosDelimanolis 虽然这个例子的arraycopy是长度为0的。
-
我会分析这两个选项来衡量内存和 CPU 使用的性能,并针对特定情况获得明确的答案。尽管如此,IMO 最好的选择还是
stringBuilder=new StringBuilder();,让 GC 完成它的工作。
标签: java stringbuilder