You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
755 B

  1. package com.sothr.imagetools.util
  2. import grizzled.slf4j.Logging
  3. trait Timing extends Logging{
  4. def time[R](block: => R): R = {
  5. val t0 = System.currentTimeMillis
  6. val result = block // call-by-name
  7. val t1 = System.currentTimeMillis
  8. info("Elapsed time: " + (t1 - t0) + "ms")
  9. result
  10. }
  11. def getTime[R](block: => R):Long = {
  12. val t0 = System.currentTimeMillis
  13. val result = block // call-by-name
  14. val t1 = System.currentTimeMillis
  15. info("Elapsed time: " + (t1 - t0) + "ms")
  16. t1 - t0
  17. }
  18. def getMean(times:Long*):Long = {
  19. getMean(times.toArray[Long])
  20. }
  21. def getMean(times:Array[Long]):Long = {
  22. var ag = 0L
  23. for (i <- times.indices) {
  24. ag += times(i)
  25. }
  26. ag / times.length
  27. }
  28. }