我需要验证特定函数在执行期间消耗了多少内存,并确保它保持在特定限制之下。
理想情况下,我想在测试或基准测试中执行此操作。据我所知,唯一的方法是创建一个单独的测试二进制文件并使用BenchmarkResult
来自
func Benchmark(f func(b *B)) BenchmarkResult
这是正确的方法吗?
答案 0 :(得分:7)
这并不是你如何使用testing
包。只需创建一个名为something_test.go
的文件并编写一个名为func BenchmarkSomething(b *testing.B)
的函数,就可以了。
testing软件包的文档更详细,但基本上在您编写_test.go
文件后,只需运行它们,启用基准测试,并针对您的问题,启用{ {1}}:
-benchmem
这应该可以为您提供所需的信息。
答案 1 :(得分:0)
实际上这很简单:
runtime.ReadMemStats(&m)
的memstats读入m
f()
m2
m
和m2