Browse Source

benchmark task

Darien Raymond 7 years ago
parent
commit
61b1013571
1 changed files with 30 additions and 0 deletions
  1. 30 0
      common/task/task_test.go

+ 30 - 0
common/task/task_test.go

@@ -6,6 +6,7 @@ import (
 	"testing"
 	"time"
 
+	"v2ray.com/core/common"
 	. "v2ray.com/core/common/task"
 	. "v2ray.com/ext/assert"
 )
@@ -41,3 +42,32 @@ func TestExecuteParallelContextCancel(t *testing.T) {
 
 	assert(err.Error(), HasSubstring, "canceled")
 }
+
+func BenchmarkExecuteOne(b *testing.B) {
+	noop := func() error {
+		return nil
+	}
+	for i := 0; i < b.N; i++ {
+		common.Must(Run(Parallel(noop))())
+	}
+}
+
+func BenchmarkExecuteTwo(b *testing.B) {
+	noop := func() error {
+		return nil
+	}
+	for i := 0; i < b.N; i++ {
+		common.Must(Run(Parallel(noop, noop))())
+	}
+}
+
+func BenchmarkExecuteContext(b *testing.B) {
+	noop := func() error {
+		return nil
+	}
+	background := context.Background()
+
+	for i := 0; i < b.N; i++ {
+		common.Must(Run(WithContext(background), Parallel(noop, noop))())
+	}
+}