我正在我的应用程序上运行一些性能分析,并发现检查控制台输出编码所需的时间几乎是我的应用程序运行完整性能迭代的两倍。
我正在通过以下方式检查:
Console.OutputEncoding.EncodingName != Encoding.UTF8.EncodingName
这个检查需要大约 80 个滴答(8,000 ns),我的整个应用程序(生成控制台表)在没有这个的情况下只需要大约 50 个滴答(5,000 ns)运行,并且经历了数百个条件。
为什么检查输出编码需要这么多时间?我可以加快速度吗?
如果我不得不冒险猜测,那是因为您正在比较EncodingName
,这会导致潜在的昂贵查找(以及随后的字符串比较)。您是否有理由不直接比较编码?
!Console.OutputEncoding.Equals( Encoding.UTF8 )
在本地测试它似乎要快得多。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句