测试内存消耗

时间:2013-12-06 23:24:49

标签: go

我需要验证特定函数在执行期间消耗了多少内存,并确保它保持在特定限制之下。

理想情况下,我想在测试或基准测试中执行此操作。据我所知,唯一的方法是创建一个单独的测试二进制文件并使用BenchmarkResult来自

func Benchmark(f func(b *B)) BenchmarkResult

这是正确的方法吗?

2 个答案:

答案 0 :(得分:7)

这并不是你如何使用testing包。只需创建一个名为something_test.go的文件并编写一个名为func BenchmarkSomething(b *testing.B)的函数,就可以了。

testing软件包的文档更详细,但基本上在您编写_test.go文件后,只需运行它们,启用基准测试,并针对您的问题,启用{ {1}}:

-benchmem

这应该可以为您提供所需的信息。

答案 1 :(得分:0)

实际上这很简单:

  1. runtime.ReadMemStats(&m)的memstats读入m
  2. 调用f()
  3. 再次将memstats读入m2
  4. 计算mm2
  5. 之间的差异