util.go 690 B

123456789101112131415161718192021222324252627282930313233343536
  1. package main
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. func timing(name string, t0 time.Time) {
  7. debugf("%s: %.02f ms", name, time.Since(t0).Seconds()*1000)
  8. }
  9. func MetricPrefix(n int) string {
  10. if n > 1e9 {
  11. return fmt.Sprintf("%.02f G", float64(n)/1e9)
  12. }
  13. if n > 1e6 {
  14. return fmt.Sprintf("%.02f M", float64(n)/1e6)
  15. }
  16. if n > 1e3 {
  17. return fmt.Sprintf("%.01f k", float64(n)/1e3)
  18. }
  19. return fmt.Sprintf("%d ", n)
  20. }
  21. func BinaryPrefix(n int) string {
  22. if n > 1<<30 {
  23. return fmt.Sprintf("%.02f Gi", float64(n)/(1<<30))
  24. }
  25. if n > 1<<20 {
  26. return fmt.Sprintf("%.02f Mi", float64(n)/(1<<20))
  27. }
  28. if n > 1<<10 {
  29. return fmt.Sprintf("%.01f Ki", float64(n)/(1<<10))
  30. }
  31. return fmt.Sprintf("%d ", n)
  32. }