Хотя я бы сделал по-другому. Использовал бы как раз requestAnimationFrame, и считал бы не frame delay а замерял бы только вызов самого метода каждый фрейм, находил бы стандартную девиацию или медиану за 1 секунду и преобразовывал бы ее в fps (fps = 1000 / avg_elapsed_time) ну или бы выводил так, в миллисекундах