11

我有一个有 4 个线程的应用程序。每个线程实际上是一个计时器,并在特定的时间间隔内执行单独的工作。这些线程通过使用来显示它们的日志Console.Writeline。性能在此应用程序中非常重要。我想知道删除 是否Console.Writeline会调整此应用程序的性能?

4

3 回答 3

9

是的,执行 Console.WriteLine 需要相当长的时间。

删除 Console.WriteLine 调用或将其更改为写入数据的缓冲后台线程将真正加快应用程序的速度。

但是,您的里程可能会因使用的操作系统而异。

于 2013-08-27T12:05:04.937 回答
9

Console.WriteLine 在性能方面可能存在两个问题:

  1. IO 通常不是“快速”操作。

  2. 对WriteLine 的调用是同步的,即如果两个线程要写入,其中一个线程阻塞在WriteLine 上,等待另一个线程完成写入。从控制台上的 MSDN

使用这些流的 I/O 操作是同步的,这意味着多个线程可以读取或写入流。

也就是说,了解在 Console.WriteLine 上花费的时间是否会影响特定应用程序的性能的唯一方法是对其进行分析。否则就是过早的优化。

于 2013-08-27T12:21:59.823 回答
6

如果是出于调试目的,您应该使用: Debug.WriteLine(..),因为这些不包含在发布版本中。

于 2013-08-27T12:04:49.400 回答