我在我的StringBuilders中遇到了一个好的SystemOutOfMemory异常。这不是由于缺乏RAM,因此我认为这是内存碎片化造成的。
我有大约200个StringBuilder对象。所有这些都经常重复使用(使用strBldr.clear())。这似乎导致我的系统内存严重碎片化。我该怎么解决这个问题?
谢谢 :)
编辑:
以下是一些数据:
输入和stringBuilder的最大记录大小:4 146 698。
每秒平均重新初始化的stringBuilders数量:>120(可能>>120)
第一个出错时的输入长度:16,972(字符串)
StringBuilder长度@第一个错误:16
第一个错误时新建StringBuilder的次数:~32500
第一个错误时总内存使用量为637 448K
我有大约200个StringBuilder对象。所有这些都经常重复使用(使用strBldr.clear())。这似乎导致我的系统内存严重碎片化。我该怎么解决这个问题?
谢谢 :)
编辑:
以下是一些数据:
输入和stringBuilder的最大记录大小:4 146 698。
每秒平均重新初始化的stringBuilders数量:>120(可能>>120)
第一个出错时的输入长度:16,972(字符串)
StringBuilder长度@第一个错误:16
第一个错误时新建StringBuilder的次数:~32500
第一个错误时总内存使用量为637 448K
StringBuilder
实例的内存量怎么办?请查看MSDN上的备注:"当实例的值被扩大并且容量相应地调整时,StringBuilder可以根据需要分配更多的内存来存储字符。分配的内存量是特定于实现的,如果所需内存量大于最大容量,则会抛出ArgumentOutOfRangeException或OutOfMemoryException异常。 - Cody Gray