我的应用程序有4个线程。每个线程实际上都是计时器,并在特定的时间间隔内完成单独的工作。
这些线程使用Console.Writeline
显示其日志。
性能在此应用程序中非常重要。我想知道删除Console.Writeline
是否会调整此应用程序的性能?
答案 0 :(得分:8)
是的,执行Console.WriteLine需要一段可测量的时间。
删除Console.WriteLine调用或将其更改为写入数据的缓冲后台线程将真正加速应用程序。
但是,您的milage可能会因使用的操作系统而异。
答案 1 :(得分:7)
Console.WriteLine在性能方面可能存在两个问题:
IO通常不是“快速”操作。
对WriteLine的调用是同步的,即如果两个线程想写,其中一个在WriteLine上阻塞,等待另一个完成写入。 来自MSDN on console:
使用这些流的I / O操作是同步的,这意味着 多个线程可以读取或写入流。
也就是说,了解在Console.WriteLine上花费的时间是否对特定应用程序的性能产生影响的唯一方法就是分析它。否则就是过早优化。
答案 2 :(得分:1)
如果是出于调试目的,您应该使用:Debug.WriteLine,因为它们不包含在发行版中。