Files
sjy01-image-proc/pkg/rrc/helper.go
2024-06-15 13:05:42 +08:00

47 lines
971 B
Go

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
}