Is setInterval reliable?

I am using setInterval to call a function every 4 seconds, but when I test my code it is very sporadic - sometimes it works fine and at other times the interval increases and the function gets called too fast. Why would this happen? Why would setInterval start calling myFunction every 2 seconds when I’m asking it to do so every 4 secs?

_root.intervalID = setInterval(myFunction, 4000);

HELP!!!