package mainimport "fmt"func main() { fmt.Println(GetFibonacci(6)) sum := GetNum(10) fmt.Println(sum) getRecursion := GetRecursion(10) fmt.Println(getRecursion) fbNum := GetFbNum(10) fmt.Println(fbNum)}/**递归就是自己调自己递归一定要有终止条件,否则就会无限循环*/func GetFibonacci(n int) int { // 如果是第0项或者第2项直接返回1 if n == 0 || n == 1 { return 1 } else { return GetFibonacci(n-1) + GetFibonacci(n-2) }}/**使用非递归实现斐波那契数列*/func GetFbNum(n int) int { a := 1 b := 1 c := a + b for i := 1; i <= n; i++ { a = b b = c c = a + b } return a}/**使用循环来实现自然数之和*/func GetNum(n int) (sum int) { for i := 1; i <= n; i++ { sum += i } return}/**使用递归来实现自然数求和*/func GetRecursion(n int) (sum int) { if n == 1 { return 1 } else { return n + GetRecursion(n-1) }}
创建测试文件 package mainimport "testing"/**测试递归求斐波那契数列*/func BenchmarkGetFibonacci(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { GetFibonacci(10) }}func BenchmarkGetFbNum(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { GetFbNum(10) }}
目录存放 执行测试 测试结果显示 数据解释 BenchmarkGetFibonacci (测试的方法名)
3835340(执行的次数)
312 ns/op(每次执行时间)
后两列代表分配的内存大小和次数(48 B/op 1 allocs/op)
以上是内存溢出为你收集整理的【GO】压力测试全部内容,希望文章能够帮你解决【GO】压力测试所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)