【发布时间】:2010-11-11 18:17:49
【问题描述】:
你好,
我的问题与使用 StreamWriter 写入数据的基本理解有关。 如果您考虑以下代码:
StreamWriter writer = new StreamWriter(@"C:\TEST.XML");
writer.WriteLine("somestring");
writer.Flush();
writer.Close();
当写入器对象被初始化时,使用文件名,它所拥有的只是一个指向文件的指针。
但是,当我们向 writer 对象写入任何字符串时,它实际上会加载整个文件、读取其内容、将字符串附加到末尾然后关闭句柄吗?
我希望这不是一个愚蠢的问题。 我问这个是因为,我遇到了一个可能每半秒频繁写入文件的应用程序,并且文件大小增加到大约 1 GB,并且它仍然继续写入文件。 (记录)
您认为这会导致 CPU 使用率达到 100% 吗?
如果我的问题不清楚,请告诉我?
提前致谢。
【问题讨论】:
-
除非有很多线程试图写入同一个文件,否则不会导致 100% 的 CPU 使用率。
-
即使它正在加载整个文件,我也不希望 100% 的 CPU 使用率,因为我希望它是 IO-bound
标签: c# performance logging filesize streamwriter