gpt4 book ai didi

.net - StringBuilder 的 RAM 消耗情况如何?

转载 作者:行者123 更新时间:2023-12-02 06:04:51 25 4
gpt4 key购买 nike

我们有一些操作需要进行大量的大字符串连接,最近遇到了内存不足的异常。不幸的是,调试代码不是一种选择,因为这是在客户站点发生的。

因此,在对我们的代码进行彻底修改之前,我想问一下:对于大字符串,StringBuilder 的 RAM 消耗特征是什么?

特别是当它们与标准字符串类型相比时。字符串的大小远超过 10 MB,我们似乎遇到了 20 MB 左右的问题。

注意:这与速度无关,而是与 RAM 相关。

最佳答案

每次 StringBuilder 空间不足时,它都会重新分配一个两倍于原始缓冲区大小的新缓冲区,复制旧字符,并让旧缓冲区被 GC 回收。您可能只是使用了足够的内存(称为 x),使得 2x 大于您允许分配的内存。您可能想要确定字符串的最大长度,并将其传递给 StringBuilder 的构造函数,以便进行预分配,并且不会受到加倍重新分配的影响。

关于.net - StringBuilder 的 RAM 消耗情况如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/149551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com