Measuring performance of code using StopWatch
Just a few little things:


A public static getInstance() method is commonly used in the singleton pattern. However, you always create a new StopWatch. At least you should name it to createNewInstance(), if you want to keep the method at all.
Many of your comments are unnecessary. For example the comment before isTimerRunning() doesn't help to understand the code. If you are generating documentation, they might be required, if not, omit such comments.
The result variable in getInterval() is not required. You can just return the result like this:

return nanoToMilliseconds(endTime - startTime);


This saves you two lines of code and makes the code clearer. The same applies to getDuration().
by using the ternary if operator, you can shorten getInterval() a bit more:

public long getInterval() {  
    final long startTime = interval;
    final long endTime = isTimerRunning() ? currentTime() : end;
    interval = endTime;
    return nanoToMilliseconds(endTime - startTime);;
}


The assignment interval = endTime now also happens when the StopWatch has already been stopped but this isn't a problem.