I wonder if this is no longer needed with Java 5 (which is now the
prerequisite Java level) - in that it supports the nanosecond timer call
(although that doesn't guarantee resolution to that level)?

-Marshall

Jaroslaw Cwiklik wrote:
> The intent behind custom timer was to support timers with different
> resolutions. Specifically for timing how long it took to analyze CAS, how
> long serialization took, etc
> By default a Java timer is used that offers 10ms resolution on Windows and
> 1ms resolution on Linux.
>
> A custom timer is plugged-in in BaseCPMimpl.init() method. It instantiates
> TimerFactory which takes a timer class as an arg.
> The TimerFactory than creates an instance of the given class and keeps a
> reference in a static global variable. From that point
> other classes can fetch the instance of the Timer by  calling:
>
> UimaTimer uimaTimer = TimerFactory.getTimer();
>
> UimaTimer has an API to fetch time of different resolution:
>
>   public long getTimeInSecs();
>   public long getTimeInMillis();
>   public long getTimeInMicros();
>   public int getResolution();
>
> Having said all that, I see that the CPM code only uses   public long
> getTimeInMillis(), which suggests that this whole thing
> is half-baked. There is a way to plug in a custom timer, there is a way to
> instantiate it, there is a way to fetch time in different
> resolution, what is NOT there is the way to select the timer based on
> desired resolution. Perhaps you can address that. Current
> work around is to add custom code to getTimeInMills() no matter what
> resolution it implements and consider the name of the method
> as a misnomer.
>
> Regards, Jerry Cwiklik
>
>   

Reply via email to