在函数参数中使用 StringBuilder 代替 String 是个好主意吗?

问题描述 投票:0回答:1

我需要一些关于使用 StringBuilder 来代替函数参数内的 String 的建议。我的程序的基本结构如下:

  1. 有几个函数按顺序运行。
  2. 基于模型类。这些属性包含字符串和字符串列表以及其他数据类型。
  3. 函数参数还包含模型对象和其他字符串。
  4. 代码运行顺利,但我正在尝试优化/减少内存消耗。
  5. 采用的技术之一是在必要时(在函数内部)将 Strings 更改为 StringBuilder 并稍后进行处理。 这个和其他一些变化在一定程度上改善了内存和堆大小的消耗。

我不确定的是:

  1. 我也应该在参数中进行此更改(从 String 到 StringBuilder)吗?
  2. 使用太多 StringBuilder 是否会给处理器带来不必要的负载?

我正在使用 Visual Studio 中的诊断工具进行跟踪,但正在寻找一些可以在内存和 CPU 消耗之间实现平衡的最佳实践。

已经尝试过:

  1. 在函数内部进行了更改(String 到 StringBuilder)。
  2. 浏览 MS 文档 https://learn.microsoft.com/en-us/dotnet/api/system.text.stringbuilder?view=net-8.0
c# asp.net-core memory stringbuilder
1个回答
0
投票

这取决于用法,如果您已经观察到使用 StringBuilder 的改进,那么它将适合您的场景。

性能基准测试:字符串和字符串生成器

StringBuilder 的执行速度明显快于 String 类 执行串联或修改操作。

修改字符串会在堆内存中创建一个新字符串。改变 String 的内容,我们应该考虑 StringBuilder 类。

© www.soinside.com 2019 - 2024. All rights reserved.