Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**This class helps to measurement the cycle- and calculation times of any cyclically routine.
- * @author Hartmut Schorrig
- * @since 2010-07-14
- */
- public class MinMaxTime
- {
- int init = 0;
- double minCyclTime;
- double midCyclTime;
- double maxCyclTime;
- double minCalcTime;
- double midCalcTime;
- double maxCalcTime;
- long _lastTime;
- double _startTime;
- /**Factor to calc to millisec. */
- double ms;
- /**Call it at start of the cyclically operation. */
- public void cyclTime()
- {
- long t = System.nanoTime();
- if(init == 0)
- init = 1; //only save time.
- else
- {
- double cyclTime = ms * (double)(t - _lastTime);
- if(init == 1)
- {
- init = 2;
- minCyclTime = midCyclTime = maxCyclTime = cyclTime;
- }
- if(cyclTime > maxCyclTime)
- {
- maxCyclTime = cyclTime;
- }
- if(cyclTime < minCyclTime)
- {
- minCyclTime = cyclTime;
- }
- midCyclTime += (cyclTime - midCyclTime) * 0.01;
- }
- _lastTime = t;
- }
- /**Call it at end of the cyclically operation. */
- public void calcTime()
- {
- long time = System.nanoTime();
- double calcTime = ms * (double)(time - _lastTime);
- if(init!=2)
- minCalcTime = midCalcTime = maxCyclTime = calcTime;
- if(calcTime > maxCalcTime)
- {
- maxCalcTime = calcTime;
- }
- if(calcTime < minCalcTime)
- {
- minCalcTime = calcTime;
- }
- midCalcTime += (calcTime - midCalcTime) * 0.01;
- _lastTime = time;
- }
- public void adjust()
- {
- _lastTime = System.nanoTime();
- try
- {
- Thread.sleep(100);
- }
- catch(InterruptedException exc)
- {
- }
- long t100ms = System.nanoTime() - _lastTime;
- ms = 100.0 / t100ms;
- }
- public void init()
- {
- init = 0 ;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement