New issue
Advanced search Search tips

Issue 685256 link

Starred by 3 users

Issue metadata

Status: Archived
Owner:
Closed: Oct 31
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

CPU Profile no longer showing native functions

Reported by ja...@krypton.io, Jan 25 2017

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36

Steps to reproduce the problem:
1. Enable 'Show native functions in JS Profile' in DevTools
2. CPU Profile code with expensive native functions (ie JSON.parse)

What is the expected behavior?
Expect to see time spent in native functions

What went wrong?
I noticed some of our cpu profiles that recently expensive functions like JSON.parse 200MB strings no longer showed up in the profile. I think the time went in the generic 'program' bucket. I tried to create a minimal repo just running a simple JSON.parse in a loop.

Results:
https://cl.ly/363N3f2S1B1f/Image%202017-01-25%20at%209.21.04%20AM.png

Unlike my other attempts it shows parse, but the time allocation doesn't come anywhere close to what the analysis shows against the source code which makes me think again the time is getting put into the 'program' bucket.

https://cl.ly/2D2R43253R1w/Image%202017-01-25%20at%209.24.44%20AM.png

JSBin: http://output.jsbin.com/vidumabama/1

Did this work before? Yes 

Chrome version: 55.0.2883.95  Channel: stable
OS Version: OS X 10.10.5
Flash Version: Shockwave Flash 24.0 r0

At first I thought maybe this was a Node using V8 issue, because I originally discovered it while profiling our code on Node 7 where the native functions appear to have complete disappeared. Its possible this is a Node on V8 issue, but my the jsbin repo doesn't exactly look right either.
 
Labels: Needs-Triage-M58
Owner: alph@chromium.org

Comment 3 by ajha@chromium.org, Feb 21 2017

Cc: ajha@chromium.org
Labels: Needs-Feedback
jason@: Could you please check the same on the latest stable(56.0.2924.87) or the latest canary(58.0.3018.0) and confirm if the issue is still seen with the attached JSBin.

With the attached JSBin, clicking on 'Do work' the values increment by one on the latest canary(58.0.3018.0) and the latest stable(56.0.2924.87) on Mac OS 10.12.2.

Comment 4 by ja...@krypton.io, Feb 21 2017

I still see no native JSON.parse in the JSBin using chrome latest 56.0.2924.87 (64-bit) (MAC)

This is the top of the profile:
2019.2 ms	2019.2 ms	(idle)
1912.0 ms58.48 %	1912.7 ms58.50 %	document.getElementById.addEventListenerwanonemiji:21
1209.8 ms37.00 %	1209.8 ms37.00 %	(garbage collector)
143.8 ms4.40 %	143.8 ms4.40 %	(program)

Comment 5 by woxxom@gmail.com, Feb 21 2017

The profiler is being redesigned/reworked.
Try it out in Chrome 58 canary which you can install separately.

Unlike the old JS CPU profiler, which apparently might/will disappear soon, it correctly measures JsonParse in case you enable experiments "V8 runtime (see below). It's timeline-based but you can switch to Bottom-Up sub-panel to see the detailed breakdown. When nothing is selected in the flamechart, it displays the overall measurement results.

***

Enabling native V8 runtime functions in timeline performance profiler:

1. go to chrome://flags/#enable-devtools-experiments and enable the flag
2. restart Chrome
3. go to devtools, experiments
4. tap Shift key six times to show hidden experiments (on Windows OS you may see a system prompt after 5th tap: close it and do the sixth)
5. enable "V8 Runtime Call Stats on Timeline"
6. make sure the good old "Show native functions in JS profile" is also enabled in devtools settings (the first sub-panel)
Clip197.png
95.6 KB View Download
Clip198.png
45.0 KB View Download
Labels: -Needs-Feedback
Thank you for providing feedback. removing "Needs-Feedback" label.
Cc: kkaluri@chromium.org
Labels: Needs-Feedback
jason@ could you please respond to the comment #5 and let us know your observations.

Comment 8 by ja...@krypton.io, Mar 2 2017

The images you show are exactly what I want. Unfortunately I can't get the new profiler to work on Version 58.0.3027.3 canary (64-bit). The profile never loads and then attempts to clear and take another fail.
Project Member

Comment 9 by sheriffbot@chromium.org, Mar 2 2017

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding requester "kkaluri@chromium.org" to the cc list and removing "Needs-Feedback" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: Needs-Feedback
Tested this issue on Mac 10.12.3 with chrome canary #58.0.3028.3

Followed the steps mentioned in the comment #5 with provided JSBIN url in comment #0.

Observed the CPU profile with native functions, attaching the screen-cast for reference.

jason@ could you please look into it and re-try the same scenario on clean profile with no apps and extensions and let us know your observations.

Thank You...

Issue 685256.mp4
2.0 MB View Download
Gentle ping!!
jason@, Could you please check the issue on latest Canary-59.0.3041.0 & update the thread as per comment#10.
Thank you.
Status: Assigned (was: Unconfirmed)

Comment 13 by ja...@krypton.io, Mar 15 2017

I still don't see what you are seeing. Version 59.0.3042.0 canary (64-bit).

Setup:
https://cl.ly/2y1u071h3Q1X
https://cl.ly/0n2y3T0K2b3B
https://cl.ly/0w3T1c1R3d3k

Result: 
It is interesting that it shows some other native V8 runtime lines like Parse/Compile, but not JSONParse
https://cl.ly/0D2c030d2j0i


Comment 14 by woxxom@gmail.com, Mar 15 2017

#13, I forgot to mention that you need to enable "Show all events on Timeline" in the devtools - settings - experiments panel. You can explore other hidden experiments as well, don't be shy :-)
@woxxom: this issue is reported against CPU profiler, not Timeline.
@jason, thank you for your report, please disregard the Timeline topics in the scope of this issue.

@woxxom: please do not recommend using "Show all events on Timeline" or enabling devtools experiments. Those are potentially harmful and one should not use them without a strong need.

Comment 16 by woxxom@gmail.com, Mar 15 2017

> [...] devtools experiments [...] are potentially harmful 

Everything in the world is potentially harmful. Or do you mean something specific about this particular experiment I advised to enable?

>and one should not use them without a strong need

How would one measure the "strongness" of need? I find these experiments useful. And I'm not the only one.
Status: Archived (was: Assigned)
Bulk closing low-priority issues with no activity. Please re-file and refer to the closed issue if it's essential to fix.

Sign in to add a comment