Well I call it every tick. I really wouldn't expect it to be this slow. This is basically the code I did that, if run "every tick", creates a noticable drop in testing FPS:
Sprite.AddValue('value',500*System.TimeDelta)
if Sprite.Value('value') >= 270:
Sprite.AddValue('value',500*System.TimeDelta)
if Sprite.Value('value') >= 360:
Sprite.SubValue('value',360)
It's a variable used for sine motions, if you're wondering why 360, etc. There's only one instance of the sprite being referenced, too.