mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
internal/runtime/cgobench: add Go function call benchmark for comparison
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>
This commit is contained in:
parent
b24aec598b
commit
710abf74da
2 changed files with 24 additions and 6 deletions
|
|
@ -11,13 +11,13 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func BenchmarkCgoCall(b *testing.B) {
|
func BenchmarkCall(b *testing.B) {
|
||||||
for b.Loop() {
|
for b.Loop() {
|
||||||
cgobench.Empty()
|
cgobench.Empty()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkCgoCallParallel(b *testing.B) {
|
func BenchmarkCallParallel(b *testing.B) {
|
||||||
b.RunParallel(func(pb *testing.PB) {
|
b.RunParallel(func(pb *testing.PB) {
|
||||||
for pb.Next() {
|
for pb.Next() {
|
||||||
cgobench.Empty()
|
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) {
|
func BenchmarkCgoCallWithCallback(b *testing.B) {
|
||||||
for b.Loop() {
|
for b.Loop() {
|
||||||
cgobench.Callback()
|
cgobench.CallbackC()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkCgoCallParallelWithCallback(b *testing.B) {
|
func BenchmarkCgoCallParallelWithCallback(b *testing.B) {
|
||||||
b.RunParallel(func(pb *testing.PB) {
|
b.RunParallel(func(pb *testing.PB) {
|
||||||
for pb.Next() {
|
for pb.Next() {
|
||||||
cgobench.Callback()
|
cgobench.CallbackC()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,14 +19,18 @@ static void callback() {
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
func Empty() {
|
func EmptyC() {
|
||||||
C.empty()
|
C.empty()
|
||||||
}
|
}
|
||||||
|
|
||||||
func Callback() {
|
func CallbackC() {
|
||||||
C.callback()
|
C.callback()
|
||||||
}
|
}
|
||||||
|
|
||||||
//export go_empty_callback
|
//export go_empty_callback
|
||||||
func go_empty_callback() {
|
func go_empty_callback() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//go:noinline
|
||||||
|
func Empty() {
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue