caipin 2 years ago
parent
commit
695f7cc435
4 changed files with 116 additions and 2 deletions
  1. 2 2
      services/jl_service.go
  2. 13 0
      web/b_test.go
  3. 25 0
      web/concat_test.go
  4. 76 0
      web/false_sharing_test.go

+ 2 - 2
services/jl_service.go

@@ -51,8 +51,8 @@ func (s *JlService) GetTableInfo(data *viewmodels.Jl, projectId int) map[string]
 
 	for _, v := range data.Key {
 		// 获得标段下,合同树
-		if v == "treeContracts" {
-			result["treeContracts"] = s.treeContractDao.GetByProjectIdInBidsectionId(bids, projectId)
+		if v == "tree_contracts" {
+			result["tree_contracts"] = s.treeContractDao.GetByProjectIdInBidsectionId(bids, projectId)
 		} else if v == "contracts" {
 			result["contracts"] = s.contractDao.GetByProjectIdInBidsectionId(bids, projectId)
 		}

+ 13 - 0
web/b_test.go

@@ -0,0 +1,13 @@
+package main
+
+import "testing"
+
+func BenchmarkIsPalindrome(b *testing.B) {
+	var main string
+	for i := 0; i < b.N; i++ {
+		main = ""
+		main += "kkk" + "1"
+		main += "ksdf" + "ab"
+	}
+
+}

+ 25 - 0
web/concat_test.go

@@ -0,0 +1,25 @@
+package main
+
+import (
+	"fmt"
+	"testing"
+)
+
+func BenchmarkPlusConcat(b *testing.B) {
+	var main string
+	for i := 0; i < b.N; i++ {
+		main = ""
+		main += "userid : " + "1"
+		main += "localtion : " + "ab"
+	}
+}
+
+func BenchmarkSprintf(b *testing.B) {
+	var main string
+	for i := 0; i < b.N; i++ {
+		main = ""
+		main += fmt.Sprintf("userid : %v", "1")
+		main += fmt.Sprintf("location : %v", "ab")
+	}
+}
+

+ 76 - 0
web/false_sharing_test.go

@@ -0,0 +1,76 @@
+package main
+
+import (
+	"sync"
+	"sync/atomic"
+	"testing"
+)
+
+type nopad struct {
+	x uint64
+	y uint64
+}
+
+type withpad struct {
+	x    uint64
+	_pad [7]uint64
+	y    uint64
+}
+
+func BenchmarkNoPad(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		var np nopad
+		var wg sync.WaitGroup
+		wg.Add(20)
+		for i := 0; i < 10; i++ {
+			go func() {
+				defer wg.Done()
+				for {
+					if atomic.AddUint64(&np.x, 1) >= 10000000 {
+						return
+					}
+				}
+			}()
+		}
+		for i := 0; i < 10; i++ {
+			go func() {
+				defer wg.Done()
+				for {
+					if atomic.AddUint64(&np.y, 1) >= 10000000 {
+						return
+					}
+				}
+			}()
+		}
+		wg.Wait()
+	}
+}
+
+func BenchmarkWithPad(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		var np withpad
+		var wg sync.WaitGroup
+		wg.Add(20)
+		for i := 0; i < 10; i++ {
+			go func() {
+				defer wg.Done()
+				for {
+					if atomic.AddUint64(&np.x, 1) >= 10000000 {
+						return
+					}
+				}
+			}()
+		}
+		for i := 0; i < 10; i++ {
+			go func() {
+				defer wg.Done()
+				for {
+					if atomic.AddUint64(&np.y, 1) >= 10000000 {
+						return
+					}
+				}
+			}()
+		}
+		wg.Wait()
+	}
+}