github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/f/cmap_test.go (about) 1 package f_test 2 3 import ( 4 "testing" 5 6 "github.com/angenalZZZ/gofunc/data/random" 7 "github.com/angenalZZZ/gofunc/f" 8 ) 9 10 func TestCMap_JSON(t *testing.T) { 11 m := f.NewConcurrentMap() 12 m.MSet(map[string]interface{}{ 13 "a": 1, 14 "b": 2, 15 "c": 3, 16 }) 17 s, _ := m.JSON() 18 t.Logf("%s\n", s) 19 20 m2, err2 := f.NewConcurrentMapFromJSON(s) 21 if err2 != nil { 22 t.Fatal(err2) 23 } 24 s2, _ := m2.JSON() 25 t.Logf("%s\n", s2) 26 } 27 28 // go test -v -cpu=4 -benchtime=15s -benchmem -bench=^BenchmarkCMap_Set$ -test.run ^none$ ./f 29 // go test -c -o %TEMP%\t01.exe ./f && %TEMP%\t01.exe -test.v -test.bench ^BenchmarkCMap_Set$ -test.run ^none$ 30 func BenchmarkCMap_Set(b *testing.B) { 31 b.StopTimer() 32 m := f.NewConcurrentMap() 33 k := random.AlphaNumber(32) 34 v := random.AlphaNumber(1024) // every time 1kB data request: cpu=4 5500k/qps 0.1ms/op 35 b.StartTimer() 36 for i := 0; i < b.N; i++ { 37 m.Set(k, v) 38 } 39 }