Comments 6
Очень интересно посмотреть на какую-то реализацию такого тестирования на базе GitHub actions. По типу как это делают с анализом изменений размера бандла.
данные, относящиеся к операциям сборки мусора. Компонент не контролирует такие операции
Однако от его кода зависит сколько они будут длиться. Например, если компонент течёт, то сбора мусора будет всё медленней. Или если компонент постоянно выделяет в куче много объектов.
ticount — очень полезная вещь для анализа, но у меня никак не получается её вывести. Создал html-файл по примеру как в вашей статье (но без реакта)
и запускаю вот такой js-файл:
Но в результате в
Версия хрома —
Подскажите, в чём может быть проблема?
<script>
console.log('start');
performance.mark('my mark start');
let a = 2;
for(i=0;i<1000;i++) {
a = a * 2;
}
console.log(a);
performance.mark('my mark end');
performance.measure('my mark', 'my mark start', 'my mark end');
console.log('end');
</script>
и запускаю вот такой js-файл:
const puppeteer = require('puppeteer');
puppeteerStart = async function() {
const browser = await puppeteer.launch({
args: [
'--no-sandbox',
'--enable-thread-instruction-count',
]});
const page = await browser.newPage();
await page.tracing.start({path: 'trace.json'});
// await page.goto('https://google.com/');
await page.goto('http://localhost/test.html');
await page.tracing.stop();
await browser.close();
}
puppeteerStart();
Но в результате в
trace.json
почему-то не видать ticount, вот строки:{"args":{"data":{"startTime":1905132262563}},"cat":"disabled-by-default-v8.cpu_profiler","id":"0x1","name":"Profile","ph":"P","pid":16750,"tid":16750,"ts":1905132262568,"tts":34098},
{"args":{"data":{"navigationId":"D37ADD1A4A0E2111BE0DE201216799E2"}},"cat":"blink.user_timing","name":"my mark start","ph":"R","pid":16750,"tid":16750,"ts":1905132268970,"tts":39904},
{"args":{"data":{"navigationId":"D37ADD1A4A0E2111BE0DE201216799E2"}},"cat":"blink.user_timing","name":"my mark end","ph":"R","pid":16750,"tid":16750,"ts":1905132269025,"tts":39959},
{"args":{"frame":"CA90D5995825FCF3F9B88D774E1C9A97"},"cat":"blink.user_timing,rail","name":"domInteractive","ph":"R","pid":16750,"tid":16750,"ts":1905132269197,"tts":40131},
Версия хрома —
"product-version":"HeadlessChrome/83.0.4103.0"
, платформа — Ubuntu Linux 16.04.Подскажите, в чём может быть проблема?
Нашёл баг по этой теме тут github.com/puppeteer/puppeteer/issues/5223
Я нашёл причину! В свежих линуксах для обычных юзеров не разрешен профайлинг, вот так можно его включить:
После этого ticount магическим образом появляется!
echo 1 | sudo tee /proc/sys/kernel/perf_event_paranoid
После этого ticount магическим образом появляется!
Sign up to leave a comment.
Анализ нагрузки на процессор, создаваемой отдельными JavaScript-компонентами