Clock.java 864 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package me.hammerle.snuviengine.util;
  2. public class Clock
  3. {
  4. private final int dataLength;
  5. private final long[] data;
  6. private int index = 0;
  7. private long sum = 0;
  8. private long time;
  9. private boolean stable = false;
  10. public Clock(int dataLength)
  11. {
  12. this.dataLength = dataLength;
  13. data = new long[dataLength];
  14. }
  15. public void start()
  16. {
  17. time = System.nanoTime();
  18. }
  19. public void stop()
  20. {
  21. time = System.nanoTime() - time;
  22. sum -= data[index];
  23. sum += time;
  24. data[index] = time;
  25. index = (index + 1) % dataLength;
  26. if(index == 0)
  27. {
  28. stable = true;
  29. }
  30. }
  31. public void printTime(String m)
  32. {
  33. if(stable)
  34. {
  35. System.out.println( m + " " + (sum / dataLength));
  36. }
  37. }
  38. }