程序越来越大,为了让程序更快地响应用户的输入,需要执行性能测试,最近在研究性能测试,就从这篇最基础的文章开始起步吧。VS 2010自带了一个功能强大的性能测试工具—Performance Wizard,在研究过程中,我决定用通过分析最普通的排序操作的程序来开始我的学习过程。
程序的功能很简单,接受任何文本文件,排序,然后将结果输出到一个新的文件中。第一个版本很简单,使用最好写的冒泡排序实现:
#region 常见的排序方法 — 适合小文件的排序 static void Main(string[] args) { if (args.Length != 2) { Console.WriteLine("Usage: sort <file name> <output file name>"); return; } string[] sortedLines; using (StreamReader reader = new StreamReader(Path.GetFullPath(args[0]))) { var text = reader.ReadToEnd(); sortedLines = Sort(text); } using (StreamWriter writer = new StreamWriter(Path.GetFullPath(args[1]))) { foreach (var line in sortedLines) writer.WriteLine(line); } } #region 使用冒泡排序来测试性能 // V1: 使用冒泡排序来测试性能 private static string[] Sort(string text) { var lines = text.Split(new string[] { "\r\n" }, StringSplitOptions.None); for (int i = 0; i < lines.Length; ++i) { for (int j = i + 1; j < lines.Length; ++j) { if (string.CompareOrdinal(lines[i], lines[j]) < 0) { var temp = lines[i]; lines[i] = lines[j]; lines[j] = temp; } } } return lines; } #endregion |
使用一个大小为2.5 兆的文本文件作为输入数据,并且用下面的步骤执行性能测试:
1. 打开Visual Studio,并点击菜单栏里的“分析(Analyze)”。
2. 点击“启动性能测试向导(Launch Performance Wizard)”。
3. 在“性能测试向导(Performance Wizard)”页面上选择“CPU Sampling (recommended)”。
4. 在后续页面上,使用页面默认的选项做完设置。
耐心等待程序执行完以后,Visual studio会提供一个报表,在摘要(Summary)里面—下图,可以看到,程序使用了大约36秒才完成了所有的过程。