代码之家  ›  专栏  ›  技术社区  ›  loudej

有比TextWriter/StringBuilder更高效的文本后台处理程序吗

  •  4
  • loudej  · 技术社区  · 17 年前

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

    有更有效的方法吗?.NET中已经存在的东西?尤其是当总大小超过100k时。也许更像是一个页面数组,而不是连续的内存?

    3 回复  |  直到 17 年前
        1
  •  3
  •   sh_kamalh    17 年前

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

        2
  •  3
  •   jonsequitur    17 年前

    这取决于你如何处理这篇文章。

    如果问题是跟踪或日志记录,我认为最好的办法是使用ETW(Windows事件跟踪)。这是一个自Windows 2000以来内置于Windows中的内核级跟踪工具,它比进行文件I/O快得多。

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

    如果你正在使用。NET 3.5,托管Etw类可以在System中找到。诊断。三日赛。

        3
  •  1
  •   Wolfwyrd    17 年前

    这已经够好了。你可以使用StringWriter,但它仍在写入StringBuilder