chore[test]: add bench for slice pointer and improve tests

This commit is contained in:
Melbex De Leon 2022-05-31 09:10:53 +08:00
parent 751467c1df
commit 66d58c3117
No known key found for this signature in database
GPG Key ID: 9A664266F44E5B74

View File

@ -30,6 +30,7 @@ func BenchmarkScan(b *testing.B) {
DB.Create(&user) DB.Create(&user)
var u User var u User
b.ResetTimer()
for x := 0; x < b.N; x++ { for x := 0; x < b.N; x++ {
DB.Raw("select * from users where id = ?", user.ID).Scan(&u) DB.Raw("select * from users where id = ?", user.ID).Scan(&u)
} }
@ -42,6 +43,20 @@ func BenchmarkScanSlice(b *testing.B) {
} }
var u []User var u []User
b.ResetTimer()
for x := 0; x < b.N; x++ {
DB.Raw("select * from users").Scan(&u)
}
}
func BenchmarkScanSlicePointer(b *testing.B) {
for i := 0; i < 10_000; i++ {
user := *GetUser(fmt.Sprintf("scan-%d", i), Config{})
DB.Create(&user)
}
var u []*User
b.ResetTimer()
for x := 0; x < b.N; x++ { for x := 0; x < b.N; x++ {
DB.Raw("select * from users").Scan(&u) DB.Raw("select * from users").Scan(&u)
} }