Skip to content

Commit c6ee08a

Browse files
committed
reference benchmark to compare how well our err2.Handle is optimized
1 parent 8b6f2ea commit c6ee08a

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

err2_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,28 @@ func BenchmarkRecursionWithTryCall(b *testing.B) {
638638
}
639639
}
640640

641+
func BenchmarkRecursionWithTryAnd_Empty_Defer(b *testing.B) {
642+
var recursion func(a int) (r int, err error)
643+
recursion = func(a int) (r int, err error) {
644+
defer func(e error) { // try to be as close to our case, but simple!
645+
err = e
646+
}(err)
647+
648+
if a == 0 {
649+
return 0, nil
650+
}
651+
s := try.To1(noThrow())
652+
_ = s
653+
r = try.To1(recursion(a - 1))
654+
r += a
655+
return r, nil
656+
}
657+
658+
for n := 0; n < b.N; n++ {
659+
_, _ = recursion(100)
660+
}
661+
}
662+
641663
func BenchmarkRecursionWithTryAndDefer(b *testing.B) {
642664
var recursion func(a int) (r int, err error)
643665
recursion = func(a int) (r int, err error) {

0 commit comments

Comments
 (0)