github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/cmd/fastcache1e6/stage.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "path/filepath" 6 "sync" 7 "time" 8 9 "github.com/angenalZZZ/gofunc/data" 10 "github.com/angenalZZZ/gofunc/data/cache/fastcache" 11 "github.com/angenalZZZ/gofunc/data/random" 12 "github.com/angenalZZZ/gofunc/f" 13 ) 14 15 func Stage() { 16 fmt.Println() 17 c, l, m := *flagCont, *flagData, *flagTimes 18 19 p := []byte(random.AlphaNumberLower(l)) 20 tl := fastcache.NewTimeline(time.Now(), time.Now().Add(time.Hour), time.Hour, data.CurrentDir, 2048) 21 22 wg := new(sync.WaitGroup) 23 wg.Add(c) 24 t1 := time.Now() 25 for x := 0; x < c; x++ { 26 n := m / (x + 1) 27 go func(n int) { 28 for i := 0; i < n; i++ { 29 _, _ = tl.Write(p) 30 } 31 wg.Done() 32 }(n) 33 } 34 wg.Wait() 35 t2 := time.Now() 36 tl.Save() 37 38 fmt.Printf(" every time %d bytes data request \n", l) 39 fmt.Printf(" take requested time %s \n", t2.Sub(t1)) 40 fmt.Printf(" take saved time %s \n", time.Now().Sub(t2)) 41 s, e := f.ReadFile(filepath.Join(tl.CacheDir, tl.Frames[0].Filename())) 42 fmt.Printf(" %s %v \n", s, e) 43 if *flagRemove { 44 tl.RemoveAll() 45 } 46 }