package main
import (
"testing"
"github.com/gogf/gf/frame/g"
)
type User struct {
Id int
Name string
}
func BenchmarkMapToStruct(b *testing.B) {
userMap := g.Map{
"Id": 1,
"Name": "John",
}
b.ResetTimer()
for i := 0; i < b.N; i++ {
var user User
_ = gconv.Struct(userMap, &user)
}
}
func BenchmarkStructToMap(b *testing.B) {
user := User{
Id: 1,
Name: "John",
}
b.ResetTimer()
for i := 0; i < b.N; i++ {
_ = gconv.Map(user)
}
}
在上述示例中,我们定义了两个性能测试函数 BenchmarkMapToStruct 和 BenchmarkStructToMap,分别用于测试 Map 到结构体的转换性能和结构体到 Map 的转换性能。
运行性能测试的命令为:
go test -bench=.
请注意,性能测试的结果可能会受到多种因素的影响,包括硬件配置、Go 版本、编译优化等。因此,建议在实际生产环境中进行性能测试,并根据实际情况进行优化。
转载请注明出处:http://www.zyzy.cn/article/detail/7601/GoFrame