我如何在 Go 中编写基准测试脚本来衡量 ops/sec
How do i write a benchmark script in Go to measure ops/sec
我正在通过编写一个简单的 Redis 克隆来练习我的 Golang。
我如何编写一个基准脚本来在 C 并发级别每秒建立 X 个连接来处理我的服务器协议并测量有多少 ops/sec?
我可以简单地编写一个实际执行此操作的脚本:
for i := range(1000) {
// Open connection
// Perform command
// Close connection
}
但我想知道每秒分配每个并发级别的连接数背后的概念。
这最好由内置的 testing.Benchmark
系统处理。例如,这样的测试用例:
func BenchmarkHello(b *testing.B) {
for i := 0; i < b.N; i++ {
fmt.Sprintf("hello")
}
}
将自动计算该函数的时序。有关设置的更多详细信息,请参阅包文档,但如果您之前编写过 Go 测试用例,应该会非常熟悉。
关于并发基准测试的问题,请参阅 RunParallel
助手,它专门用于协助解决此问题。
我正在通过编写一个简单的 Redis 克隆来练习我的 Golang。
我如何编写一个基准脚本来在 C 并发级别每秒建立 X 个连接来处理我的服务器协议并测量有多少 ops/sec?
我可以简单地编写一个实际执行此操作的脚本:
for i := range(1000) {
// Open connection
// Perform command
// Close connection
}
但我想知道每秒分配每个并发级别的连接数背后的概念。
这最好由内置的 testing.Benchmark
系统处理。例如,这样的测试用例:
func BenchmarkHello(b *testing.B) {
for i := 0; i < b.N; i++ {
fmt.Sprintf("hello")
}
}
将自动计算该函数的时序。有关设置的更多详细信息,请参阅包文档,但如果您之前编写过 Go 测试用例,应该会非常熟悉。
关于并发基准测试的问题,请参阅 RunParallel
助手,它专门用于协助解决此问题。