An object that measures elapsed time in nanoseconds. It is useful to measure
elapsed time using this class instead of direct calls to java.lang.System.nanoTime() for a few reasons:

An alternate time source can be substituted, for testing or performance
reasons.

As documented by nanoTime, the value returned has no absolute
meaning, and can only be interpreted as relative to another timestamp
returned by nanoTime at a different time. Stopwatch is a
more effective abstraction because it exposes only these relative values,
not the absolute ones.