puppeteer: thread-instruction-count: tidelta / ticount don't exist in tracing file
Environment 1 puppeteer-core: 2.0.0 docker image: node:12-slim os version: macOS 10.14.6 node.js version: 12 chrome version: 77/78
Environment 2 puppeteer-core: 2.0.0 virtualisation: virtualbox 6 os version: Ubuntu 18.04 node.js version: 12 chrome version: 77
What steps will reproduce the problem?
According to this message. Puppeteer provides RTI data in trace file when flags: --enable-thread-instruction-count
and --no-sandbox
are used. Information should be placed in tidelta
and ticount
properties.
Case:
const puppeteer = require('puppeteer')
;(async () => {
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://www.example.com/')
await page.tracing.stop()
await browser.close()
})()
Dockerfile Chrome-Detect&Downloader
What is the expected result?
tidelta
exist in trace.json and parameter not empty.
What happens instead?
tidelta
doesn’t exist in trace.json.
What a goal to use this feature? I want to use RTI data for Web Perf Testing in tools like size-limit, estimo, etc.
PS
I tried this case with docker image node:10-slim, chrome 77 and chrome 78.
But tidelta
always didn’t exist in trace file.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Reactions: 2
- Comments: 42
I just noticed that I was comparing two different chrome versions:
Will update chrome and test again
For anyone else curious – it appears that support for these fields was removed in Chrome in this Jun 2022 commit, which landed in release 105.0.5137.0:
https://chromium.googlesource.com/chromium/src/+/736be85b0d7c4fbfaacc7fcd8571828f8ad4dee1
When I manually launch chrome and enable tracing, I see in output
Seems
perf_event_open failed
is source of problem?And magic command “allow kernel profiling for non-privileged users”, that I find here - seems help:
After enabling it - I see
ticount
in json results of your test file!Done using HeadlessChrome/83.0.4103.0 on native Ubuntu 20.04 Linux without docker: https://gist.github.com/MurzNN/5e2683d1c4e2e59d8478b4cc95c4366e
JSON: https://gist.github.com/ai/a5d31776e407ac701efd5c7670e0eeda
Fedora 31
@mbalabash
@mbalabash, I do test on Ubuntu 20.04, output is here: https://gist.github.com/MurzNN/52c8944c747d026d8afee509537c7a75 - ticount is missing 😦 Same results is with Chromium 78 (r686622) - I change them in
cripts/chromeDetection.js
.@MurzNN Yes, you right. Your trace file don’t contain
ticount
andtidelta
values. It means that something has been changed in the latest Chrome versions.I not familiar with changes which were happened in
81, 82, 83
versions. So, I’m going to do homework and will provide an update ASAP.Hello everyone! I want to ask your help guys.
If you are using Linux distro without any virtualization, you can help with testing this issue. (Currently, I can’t do it by myself, unfortunately)
What you can do:
git clone -b rti https://github.com/mbalabash/estimo
yarn install
(It might take a while)yarn test:launch
Copy+Paste console output from the latest command and include it in your comment
Copy content from json file in
path/to/estimo/temp/some-generic-id.json
5.1. Create gist and paste content from previous step
5.2. Provide link to this gist in your comment
Provide your Linux distro name and version
Post your comment and @ tag me there
Thanks to everyone who will help.
One gets the impression that this API can only work from under bare Linux, and any virtualization breaks it.
Can you help me to find out about this problem?