Golang修改echo程序

描述

使用 Golang 实现,测量程序在不同情形下的运行时间差异。(Go 语言圣经书后习题 1.3)

题目

做实验测量潜在低效的版本和使用了 strings.Join 的版本的运行时间差异。(1.6 节讲解了部分 time 包,11.4 节展示了如何写标准测试程序,以得到系统性的性能评测。)

题目解决思路

我们可以使用 Golang 内置的测试工具进行测试。

代码具体实现

package main import ( "strings" "testing" ) func BenchmarkString2Join(b *testing.B) { for i := 0; i < b.N; i++ { input := []string{"Welcome", "To", "China"} result := strings.Join(input, " ") if result != "Welcome To China" { b.Error("Unexcepted result:" + result) } } } func BenchmarkString2Plus(b *testing.B) { for i := 0; i < b.N; i++ { input := []string{"Welcome", "To", "China"} var s, sep string for j := 0; j < len(input); j++ { s += sep + input[i] sep = " " } if s != "Welcome To China" { b.Error("Unexcepted result:" + s) } } }

我们可以使用 Golang 内置的测试工具,运行上述两个 函数,比较它们运行的时间差异。