C#词频统计 效能分析
在邹老师的效能分析的建议下对上次写过的词频统计的程序进行分析改进。
效能分析:个人很浅显的认为就是程序的运行效率,代码的执行效率
1.VS 提供了自带的分析工具:performance tool (性能分析)
先看一下VS工具的自己介绍:诊断应该程序的性能问题、识别应用程序中最常见的高开销方法。
performance tool包含四个方面的内容:
采用了CPU采样对词频统计程序进行了分析。
2.第一次分析结果
*发现String.Concat占用超过九成。找到对应的程序位置如下:
找到原因
String.Concat (String, String)
连接 String 的两个指定实例。
在对文件进行读入的过程中采用了string连接的方式
2.修改
因此修改读入方式为:
利用ReadToEnd就解决了上述问题!Oh My God 以前从未认为竟然会有这种问题。
修改后的分析结果,如下:
原本的String.Concat占用没有了,系统的整体运行时间也变短了。
占用百分比较高的部分是对标点符号的替换。暂时没有很好的想法。
3.对一些其他的细节进行了修改:
将words.Length从循环中提出放到外层。
4.暂时没有与其他程序进行比较