Где почитать про анализ нагрузки на компьютер скриптом javascript?
let startTime = new Date().getTime();
// здесь тяжелые вычисления
// ...
let endTime = new Date().getTime();

console.log(`расчеты поребовали ${endTime - startTime} миллисекунд`)
Чтобы не фризить интерефейс выполняйте вычисления в 
https://developer.mozilla.org/ru/docs/DOM/window.r...
Методом деления пополам подбираем такое количество данных для обработки, которое будет отжирать не больше 16-17ms на каждый тик requestAnimationFrame 
Так как нагрузка на процессор не константна периодически повторяем подбор размера порции данных для обработки.
Внимание requestAnimationFrame не будет отрабатывать в фоновой вкладке. Это нужно учитывать в логике.
Также почитайте про https://developer.mozilla.org/ru/docs/DOM/Using_we...