There are a bunch of reasons why an interval might be longer than expected. They are outlined here.
setInterval
follows the same rules as setTimeout
.