Функция специфического профилирования производительностиJavascript

Форум по Javascript
Anonymous
Функция специфического профилирования производительности

Сообщение Anonymous »

Есть ли способ, в Chrome или Firefox, точно профилировать время выполнения определенной функции (и функции, которые он вызывает). Для контекста я пишу пользовательский рендеринг для приложения, над которым я работаю, и я пытаюсь как можно больше минимизировать время кадров, чтобы максимально увеличить FPS. Рендерератель рисует непосредственно на холст HTML. src = "https://i.sstatic.net/3accw1ld.png"/>
Согласно этому, если я правильно его читаю, Firefox сообщает мне, что моя функция _draw занимает ~ 2 мс для выполнения (313 мс/157 образцов). Однако, если я создаю простую эталонную функцию, подобную следующему: < /p>

Код: Выделить всё

bench(): void {
const iterations = 10_000;
const start = performance.now();
for (let i = 0; i < iterations; i++) {
this._draw();
}
const end = performance.now();
const time = end - start;
const perCallTime = time / iterations;
console.log("Time: ", time, "ms", "Per call: ", perCallTime, "ms");
}
Я получаю это в моей консоли:

Таким образом, это говорит мне, что моя функция нарисует. Быть отображаемым на экране очень похоже каждый раз, когда вызывается функция рисования. Я понимаю, что это может изменить результаты, но не на целом порядке. Как я бы правильно профилировал это? В идеале я не хочу только время выполнения верхнего уровня в основной функции рисования, но время выполнения на функцию, называемое в ней, как пламенграф. Flamegraph приводит к тому, что Firefox показывает те же результаты, что и вкладка «Дерево вызовов».

Подробнее здесь: https://stackoverflow.com/questions/797 ... -profiling

Вернуться в «Javascript»