Console.WriteLine在以Windows Application方式下编译会产生性能问题

新接触C#+.net 3.5,用C#重写了一个以前用Qt写的串口操作程序,并以Class Library方式编译,测试程序是以Console Application方式进行编译的C#程序,把发送和接收的信息用Console.WriteLine的方式打印出来,一切都很好,在用StopWatch来比较写一段0xFFF长度的CANBUS串口消息用了1.75秒左右的时间,跟用Qt写的操作时间差不多。

后来在这个Class Library增加了WPF的模块,于是在原来测试程序由Console Application改成Windows Application来编译,并把原来测试串口操作的程序以第二线程(即WPF为主线程)来执行,但这次StopWatch记录所花的时间居然是9秒多(在VS2008输出窗口中),难道是Windows Application编译会减慢速度?又转成Console Application来编译,这次就多了一个Console的黑窗口,时间上是1.75秒,跟以前是一样。难道是string的问题?把打印信息改成StringBuilder来组织,再以Windows Application来编译,还是一样9秒多。于是把Console.WriteLine注释掉,时间没有影响,一样是1.75秒左右。难道在Windows Application下使用Console.WriteLine会影响性能?查找了一下MSDN有关C# Debug的方法,使用System.Diagnostics.Trace.WriteLine,居然程序没有影响了。

所以以后如果想得到一些高度信息等调试手段,还是使用System.Diagnostics里的方法比较好。至于原理,现在还不清楚。

转载于:https://www.cnblogs.com/crazywolf/archive/2010/07/05/1771719.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值