Pull to refresh

Comments 6

Очень интересно посмотреть на какую-то реализацию такого тестирования на базе GitHub actions. По типу как это делают с анализом изменений размера бандла.

UFO just landed and posted this here
данные, относящиеся к операциям сборки мусора. Компонент не контролирует такие операции

Однако от его кода зависит сколько они будут длиться. Например, если компонент течёт, то сбора мусора будет всё медленней. Или если компонент постоянно выделяет в куче много объектов.

ticount — очень полезная вещь для анализа, но у меня никак не получается её вывести. Создал html-файл по примеру как в вашей статье (но без реакта)
<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.

Подскажите, в чём может быть проблема?
Я нашёл причину! В свежих линуксах для обычных юзеров не разрешен профайлинг, вот так можно его включить:

echo 1 | sudo tee /proc/sys/kernel/perf_event_paranoid

После этого ticount магическим образом появляется!
Sign up to leave a comment.