2008-09-17 19 views
4

對於像增量式捕獲文本的情況,例如,如果您在頁面渲染時接收到所有output.write調用,並且這些調用被附加到一個textwriter上一個stringbuilder。是否有比TextWriter/StringBuilder更高效的文本假脫機程序

有沒有更有效的方法來做到這一點?在dotnet中存在的東西最好?特別是如果總共有一百多k的大小。也許更像是一組頁面而不是連續的內存?

回答

3

我認爲StringBuilder是在.net中附加文本的最有效方式。爲了更高效,您可以在創建時指定StringBuilder的初始大小。

1

這是一樣好。你可以使用一個StringWriter,但它仍然寫入一個StringBuilder

3

這取決於你在用那個文本做什麼。

如果問題是追蹤或記錄,我會說你最好的選擇是使用ETW(Windows事件追蹤)。它是自Windows 2000以來內置於Windows中的內核級跟蹤工具,它比做文件I/O要快得多。

如果您不使用.NET 2.0,則必須使用一點win32 API工作才能使用它,並且您必須創建一個在系統上註冊的提供程序類。這有點複雜,但值得努力。

如果您使用.NET 3.5,可以在System.Diagnostics.Eventing中找到託管的Etw類。