Функция специфического профилирования производительности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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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