#jquery #frame-rate
Вопрос:
В основном я делаю некоторые анимации с помощью jQuery, и в целях отладки я хотел бы посмотреть, сколько кадров в секунду выполняется в моих анимациях.
Существуют ли какие-либо сценарии, которые делают такую вещь, или простое решение? А если нет, то как я мог бы этого достичь?
Заранее спасибо!
Комментарии:
1. Как насчет моего предложения? У меня здесь нет ничего, чтобы это проверить, но я думаю, что это должно сработать.
Ответ №1:
На случай, если у кого-то еще возникнет этот вопрос: https://github.com/mrdoob/stats.js
У мистера Дуба есть отличный маленький плагин для определения частоты кадров
Ответ №2:
Что вы могли бы сделать, так это создать глобальную переменную, которая увеличивается на единицу при каждом отображении кадра, а затем с помощью setInterval
параметра установить это значение обратно в 0 и вывести значение.
var frames = 0;
function render_frame(){
/* With this function I mean the place where you render a frame */
frames ;
}
setInterval(function() {
$('#fps').html(frames ' fps');
frames = 0;
}, 1000);
Таким образом, вы начинаете с частоты кадров 0, и в течение одной секунды подсчитывается количество кадров, затем в конце секунды счетчик кадров сбрасывается и выводится, что приводит к кадрам в секунду.
Комментарии:
1. Проблема здесь в том, что я не могу отслеживать «каждый» кадр отдельно при анимации
animate()
… Или, может быть, я просто не нашел способа сделать это. Плюс к тому, что одновременно анимируется несколько элементов, что влияет на фактический FPS.