]> Cypherpunks repositories - gostls13.git/commitdiff
internal/runtime/cgobench: add Go function call benchmark for comparison
authorMichael Anthony Knyszek <mknyszek@google.com>
Thu, 16 Oct 2025 00:58:20 +0000 (00:58 +0000)
committerGopher Robot <gobot@golang.org>
Fri, 14 Nov 2025 19:15:35 +0000 (11:15 -0800)
Change-Id: I0ada7fa02eb5f18a78da17bdcfc63333abbd8450
Reviewed-on: https://go-review.googlesource.com/c/go/+/713284
Reviewed-by: Cherry Mui <cherryyz@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Michael Knyszek <mknyszek@google.com>

src/internal/runtime/cgobench/bench_test.go
src/internal/runtime/cgobench/funcs.go

index 3b8f9a8ca3aee2273e73b8a1991d6098f4da0f9a..0348ee0f41e60fe535b46f06bfd4e3415d5db300 100644 (file)
@@ -11,13 +11,13 @@ import (
        "testing"
 )
 
-func BenchmarkCgoCall(b *testing.B) {
+func BenchmarkCall(b *testing.B) {
        for b.Loop() {
                cgobench.Empty()
        }
 }
 
-func BenchmarkCgoCallParallel(b *testing.B) {
+func BenchmarkCallParallel(b *testing.B) {
        b.RunParallel(func(pb *testing.PB) {
                for pb.Next() {
                        cgobench.Empty()
@@ -25,16 +25,30 @@ func BenchmarkCgoCallParallel(b *testing.B) {
        })
 }
 
+func BenchmarkCgoCall(b *testing.B) {
+       for b.Loop() {
+               cgobench.EmptyC()
+       }
+}
+
+func BenchmarkCgoCallParallel(b *testing.B) {
+       b.RunParallel(func(pb *testing.PB) {
+               for pb.Next() {
+                       cgobench.EmptyC()
+               }
+       })
+}
+
 func BenchmarkCgoCallWithCallback(b *testing.B) {
        for b.Loop() {
-               cgobench.Callback()
+               cgobench.CallbackC()
        }
 }
 
 func BenchmarkCgoCallParallelWithCallback(b *testing.B) {
        b.RunParallel(func(pb *testing.PB) {
                for pb.Next() {
-                       cgobench.Callback()
+                       cgobench.CallbackC()
                }
        })
 }
index 91efa5127893e526acc08503ed14a26542860d66..b60f6f58fd479b8b2a66dd49ad37299ed7192c02 100644 (file)
@@ -19,14 +19,18 @@ static void callback() {
 */
 import "C"
 
-func Empty() {
+func EmptyC() {
        C.empty()
 }
 
-func Callback() {
+func CallbackC() {
        C.callback()
 }
 
 //export go_empty_callback
 func go_empty_callback() {
 }
+
+//go:noinline
+func Empty() {
+}