Difference between measuring time delta from elapsedTime and RenderStepped

while true do
	local Time = elapsedTime()
	
	local WaitDt = game:GetService("RunService").RenderStepped:Wait()
	
	local NewTime = elapsedTime()
	
	local ElapsedDt = NewTime - Time
	
	print("Pct Diff. in measured time: ", 100*(ElapsedDt - WaitDt)/ElapsedDt)
end

Intuitively these two methods of measuring the time elapsed between Time and NewTime should be close to identical, but in practise it varies randomly by ±/10%. Why is there such a difference?

2 Likes