package curl2info import ( "fmt" "log" "runtime" "testing" "time" ) // type LRValue struct { // left, right int // } func TestParseCrontab(t *testing.T) { // crontab := "0-5/2,7-30/3,30,35,40-^1 * * * *" //(秒) 分 时 号(每月的多少号, 要注意月可可能性) 星期几(每个星期的) /每 ,列表 -范围 crontab := "* * * * 6-6" t.Error("") // t.Error(NewCrontab(crontab)) var s []*TrieYear PrintMemUsage() for i := 0; i < 10000; i++ { ty := newTrieYear(2018) ty.FromCrontab(NewCrontab(crontab)) s = append(s, ty) } ty := newTrieYear(2018) cron := NewCrontab(crontab) ty.FromCrontab(cron) log.Println(ty.GetPlanTime(cron, time.Now(), 10)) // for { // i := ty.TimeUp() // if i != nil { // if i.GetStatus() { // spew.Dump(i) // log.Println(time.Now()) // break // } // } // time.Sleep(time.Millisecond * 200) // } PrintMemUsage() } func TestCrontabPlus(t *testing.T) { // crontab := "0-5/2,7-30/3,30,35,40-^1 * * * *" //(秒) 分 时 号(每月的多少号, 要注意月可可能性) 星期几(每个星期的) /每 ,列表 -范围 // crondata := NewCrontab("*22 * * * *") } func PrintMemUsage() { var m runtime.MemStats runtime.ReadMemStats(&m) // For info on each, see: https://golang.org/pkg/runtime/#MemStats fmt.Printf("Alloc = %v MiB", bToMb(m.Alloc)) fmt.Printf("\tTotalAlloc = %v MiB", bToMb(m.TotalAlloc)) fmt.Printf("\tSys = %v MiB", bToMb(m.Sys)) fmt.Printf("\tNumGC = %v\n", m.NumGC) } func bToMb(b uint64) uint64 { return b / 1024 / 1024 }