golang_for循环内外声明变量的基准测试

本文探讨了在Go语言中,for循环内部与外部声明变量对函数性能的影响。通过基准测试得出结论,这种差异并不显著,开发者在实际编程时不必过于关注此细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

for循环内外声明常量对函数性能的影响:
使用基准测试,发现影响不大,不用在意两种写法的影响。
新建0701-random_url_const_test.go文件

package main

import (
	"math/rand"
	"testing"
)

var letterRunes = []rune("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_")

func RandStringRunes1(n int) string {
	b := make([]rune, n)
	for i := range b {
		b[i] = letterRunes[rand.Intn(len(letterRunes))]
	}
	return string(b)
}

func RandStringRunes2(n int) string {
	b := make([]rune, n)
	l := len(letterRunes)
	for i := range b {
		b[i] = letterRunes[rand.Intn(l)]
	}
	return string(b)
}

const n = 10

func BenchmarkRunes1(b *testing.B) {
	for i := 0; i < b.N; i++ {
		RandStringRunes1(n)
	}
}

func BenchmarkRunes2(b *testing.B) {
	for i := 0; i < b.N; i++ {
		RandStringRunes2(n)
	}
}

/*
go test -run=none -bench=. -benchmem 0701-random_url_const_test.go
goos: darwin
goarch: amd64
BenchmarkRunes1-16       4239441               261 ns/op              64 B/op          2 allocs/op
BenchmarkRunes2-16       4625017               261 ns/op              64 B/op          2 allocs/op
PASS
ok      command-line-arguments  3.647s
测试的结果,len()在for循环的外面声明和在里面声明性能影响不大,不用太在意这个写法的区别
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值