对于增量捕获文本之类的情况,例如,如果您在渲染页面时收到所有的output.write调用,并且这些调用通过字符串生成器附加到文本编写器中。

有没有更有效的方法来做到这一点?dotnet 中已经存在的东西最好吗?特别是如果总大小超过一百k。也许更像是页面数组而不是连续内存?

有帮助吗?

解决方案

我认为 StringBuilder 是在 .net 中附加文本的最有效方法。为了提高效率,您可以在创建 StringBuilder 时指定它的初始大小。

其他提示

这取决于您对该文本的处理方式。

如果关注的是跟踪或日志记录,我认为最好的选择是使用 ETW(Windows 事件跟踪)。它是自 Windows 2000 起就内置于 Windows 中的内核级跟踪工具,它比文件 I/O 快得多。

如果您不使用 .NET 2.0,则必须执行一些 win32 API 工作才能使用它,并且必须创建一个在系统上注册的提供程序类。这有点复杂,但值得付出努力。

如果您使用的是 .NET 3.5,则可以在 System.Diagnostics.Eventing 中找到托管 Etw 类。

这已经是最好的了。您可以使用 StringWriter 但它仍然写入 StringBuilder

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top