我有一段代码每隔几秒调用一次并使用环境变量:for { myVar := os.Getenv("MY_VAR") //Do something time.Sleep(3 * time.Second)}但是重复调用的成本是多少os.Getenv?环境变量的值在运行时不会改变,所以我可以将它设置为包级变量:package blahvar myVar = os.Getenv("MY_VAR")但这确实损害了代码的可测试性。我应该将它设置为包级变量吗?还是os.Getenv足够温和?编辑: 我已经对调用进行了基准测试,os.Getenv但它可靠吗?package main_testimport ( "os" "testing")var result stringfunc BenchmarkEnv(b *testing.B) { var r string for n := 0; n < b.N; n++ { r = os.Getenv("PATH") } result = r}goos: darwingoarch: amd64BenchmarkEnv-8 20000000 78.7 ns/opPASS
- 1 回答
- 0 关注
- 119 浏览
添加回答
举报
0/150
提交
取消