testgcache.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package main
  2. import (
  3. "runtime"
  4. "strconv"
  5. "time"
  6. "gitee.com/wecisecode/util/logger"
  7. "github.com/bluele/gcache"
  8. )
  9. func main() {
  10. cache := gcache.New(3000000).LRU().Build()
  11. for i := 0; i < 400000; i++ {
  12. if i%10000 == 0 {
  13. logger.Info("set now ==>", i)
  14. }
  15. cache.Set("straaaa"+strconv.Itoa(i), struct{}{})
  16. }
  17. st := time.Now().UnixNano()
  18. for i := 0; i < 400000; i++ {
  19. cache.Get("straaaa" + strconv.Itoa(i))
  20. }
  21. ed := time.Now().UnixNano()
  22. logger.Info("diff ==>", (ed-st)/1e6)
  23. var mem runtime.MemStats
  24. runtime.ReadMemStats(&mem)
  25. logger.Infof("TotalAlloc = %v MiB", mem.TotalAlloc/1024/1024)
  26. time.Sleep(100 * time.Second)
  27. /*caches := []gcache.Cache{}
  28. for i:=0 ; i<5 ; i++ {
  29. v := gcache.New(1000000).LRU().Build()
  30. caches =append(caches, v)
  31. }
  32. for k:=0 ; k<200000 ; k++ {
  33. for i:=0 ; i<5 ; i++ {
  34. caches[i].Set("straaaa"+strconv.Itoa(k), struct{}{})
  35. }
  36. }
  37. st := time.Now().UnixNano()
  38. for i:=0 ; i<100000 ; i++ {
  39. caches[i%5].Get("straaaa"+strconv.Itoa(i))
  40. }
  41. ed := time.Now().UnixNano()
  42. logger.Info("diff ==>", (ed-st)/1e6 )
  43. var mem runtime.MemStats
  44. runtime.ReadMemStats(&mem)
  45. logger.Infof("TotalAlloc = %v MiB", mem.TotalAlloc/1024/1024)
  46. time.Sleep(100*time.Second)*/
  47. }