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 > >
