Elapsed.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package com.its.common.utils;
  2. import java.util.concurrent.TimeUnit;
  3. public class Elapsed {
  4. private long sTime = 0;
  5. public Elapsed() {
  6. reset();
  7. }
  8. private long getElapsed() {
  9. return System.nanoTime() - sTime;
  10. }
  11. public long nanoSeconds() {
  12. return getElapsed();
  13. }
  14. public long milliSeconds() {
  15. return TimeUnit.MILLISECONDS.convert(getElapsed(), TimeUnit.NANOSECONDS);
  16. }
  17. public long seconds() {
  18. return TimeUnit.SECONDS.convert(getElapsed(), TimeUnit.NANOSECONDS);
  19. }
  20. public void reset() {
  21. sTime = System.nanoTime();
  22. }
  23. public static String elapsedTimeStr(long elapsed) {
  24. long seconds = TimeUnit.SECONDS.convert(elapsed, TimeUnit.NANOSECONDS);
  25. long miliSeconds = TimeUnit.MILLISECONDS.convert(elapsed, TimeUnit.NANOSECONDS) % 1000;
  26. long microSeconds = TimeUnit.MICROSECONDS.convert(elapsed, TimeUnit.NANOSECONDS) % 1000;
  27. long nanoSeconds = TimeUnit.NANOSECONDS.convert(elapsed, TimeUnit.NANOSECONDS) % 1000;
  28. if (seconds > 0) {
  29. return String.format("Elapsed: %,d sec. %3d ms. %3d us. %3d ns.", seconds, miliSeconds, microSeconds, nanoSeconds);
  30. }
  31. if (miliSeconds > 0) {
  32. return String.format("Elapsed: %3d ms. %3d us. %3d ns.", miliSeconds, microSeconds, nanoSeconds);
  33. }
  34. if (microSeconds > 0) {
  35. return String.format("Elapsed: --- ms. %3d us. %3d ns.", microSeconds, nanoSeconds);
  36. }
  37. return String.format("Elapsed: --- ms. --- us. %3d ns.", nanoSeconds);
  38. }
  39. }