package rrc import ( "runtime" "github.com/dustin/go-humanize" log "github.com/sirupsen/logrus" ) func searchVL(V []float64, Sik float64) int { left, right := 0, len(V)-2 // if Sik < V[0] || Sik > V[len(V)-1] { // return -1 // } for left <= right { mid := left + (right-left)/2 // Check if Sik is between V[mid] and V[mid+1] if V[mid]-1e-6 <= Sik && Sik <= V[mid+1]+1e-6 { return mid } else if Sik < V[mid] { right = mid - 1 } else if Sik == V[mid] { return mid } else { left = mid + 1 } } // Return -1 if no such position is found return -1 } var lastTotalFreed uint64 func printMemStats() { var m runtime.MemStats runtime.ReadMemStats(&m) log.Printf("[Memory] Alloc = %v TotalAlloc=%v Just Freed = %v Sys = %v NumGc=%v", humanize.Bytes(m.Alloc), humanize.Bytes(m.TotalAlloc), humanize.Bytes(((m.TotalAlloc - m.Alloc) - lastTotalFreed)), humanize.Bytes(m.Sys), m.NumGC) lastTotalFreed = m.TotalAlloc - m.Alloc }