为了账号安全,请及时绑定邮箱和手机立即绑定

测试内存消耗

测试内存消耗

Go
温温酱 2021-07-07 13:11:40
我需要验证特定函数在执行期间消耗了多少内存,并确保它保持在特定限制之下。理想情况下,我想在测试或基准测试中执行此操作。据我所知,唯一的方法是创建一个单独的测试二进制文件并使用BenchmarkResultfromfunc Benchmark(f func(b *B)) BenchmarkResult这是正确的方法吗?
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

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

测试包的文档更详细,但基本上在您编写_test.go文件后,您只需运行它们,启用基准测试,并针对您的问题,打开-benchmem

go test -bench=. -benchmem

那应该给你你正在寻找的东西。


查看完整回答
反对 回复 2021-07-12
?
波斯汪

TA贡献1811条经验 获得超4个赞

其实很简单:

  1. 使用runtime.ReadMemStats(&m)into读取 memstatsm

  2. 调用 f()

  3. 再次将 memstats 读入 m2

  4. 计算m和之间的差异m2


查看完整回答
反对 回复 2021-07-12
  • 2 回答
  • 0 关注
  • 290 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信