The page at http://www.chromium.org/developers/how-tos/trace-event-profiling-tool/recording-tracing-runs says to select "Manually select settings" and then leave the default boxes checked, but that doesn't work if you've ever changed the settings. Is there a way to reset to the defaults? If not then we should document what the defaults are.
Each trace shows a large box on the TotalDiscardableMemoryUsage timeline. If I click that box then everything disappears. If I try zooming then the screen is redrawn with garbage lines on it. The only way to recover from this is to reload the trace.
On Nat's advice I checked ipc.flow and toplevel.flow when recording the trace, and checked Flow events when viewing the trace. My goal was to trace the JumpList::PostRunUpdate callbacks. With Flow events checked I can see lots of elegantly curve arrows connecting different events, but there are no arrows connecting to the JumpList::PostRunUpdate events on the Chrome_FileThread. I've manually traced back several levels using the debugger but clearly this doesn't scale well to customer machines. Is there some additional setting I need to check, or is there code that needs to be added to trace these tasks as well?
There also seem to be some presentation bugs at high zoom levels. If I zoom in far enough then sometimes the text and box get misaligned (not fatal) and sometimes the box disappears entirely! It feels like a float precision bug, although I'm not sure.
On Tue Feb 24 2015 at 8:24:35 PM 'Bruce Dawson' via tracing <tra...@chromium.org> wrote:The page at http://www.chromium.org/developers/how-tos/trace-event-profiling-tool/recording-tracing-runs says to select "Manually select settings" and then leave the default boxes checked, but that doesn't work if you've ever changed the settings. Is there a way to reset to the defaults? If not then we should document what the defaults are.The only thing with defaults are the preset modes. So, if you select web developer or one of those then you get those presets. If you manually set them, there are no default 'manual' categories. You can switch between the preset modes and manual on each record run as needed.
Each trace shows a large box on the TotalDiscardableMemoryUsage timeline. If I click that box then everything disappears. If I try zooming then the screen is redrawn with garbage lines on it. The only way to recover from this is to reload the trace.Can you use the 'save' button to dump out the trace and email it to me? I can try to take a look and see if it repros here and how to fix it. (Note, if you have other tabs open like Gmail or such, those tabs will also be grabbed, so it's best to run in a browser that you've opened just for tracing)
What do you mean garbage lines? LIke, it's trying to draw the events and they come out wrong? (If possible, a screenshot would help clarify what the issue is).
On Nat's advice I checked ipc.flow and toplevel.flow when recording the trace, and checked Flow events when viewing the trace. My goal was to trace the JumpList::PostRunUpdate callbacks. With Flow events checked I can see lots of elegantly curve arrows connecting different events, but there are no arrows connecting to the JumpList::PostRunUpdate events on the Chrome_FileThread. I've manually traced back several levels using the debugger but clearly this doesn't scale well to customer machines. Is there some additional setting I need to check, or is there code that needs to be added to trace these tasks as well?It sounds like there are no FLOW events logged for that event. It's possibly being logged with a regular TRAC_EVENTx marcro. You'd need to go look at that method in the source and see how it's currently traced. If it's not, and should be, using a FLOW event, can you file a crbug.com bug with Performance-Tracing label and we can take a look (or feel free to put up a patch if you so desire).There also seem to be some presentation bugs at high zoom levels. If I zoom in far enough then sometimes the text and box get misaligned (not fatal) and sometimes the box disappears entirely! It feels like a float precision bug, although I'm not sure.There are a few issues at high zoom (the instant events disappear eventually). We haven't had time to track them down, but they do need to be fixed at some point. If this is causing persistent issues please let me know and I can try to investigate more.
--Thanks,dan
You received this message because you are subscribed to the Google Groups "tracing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tracing+u...@chromium.org.
To post to this group, send email to tra...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/tracing/CAMYH%3DOh7rkX_wQhPMPcL3Y1xiXB_Cw%2BkgHP2Q%2Bdyz%3DOhQNuxRw%40mail.gmail.com.
The ones that are checked initially for manual seem to be everything under "Record Categories" and nothing under "Disabled by Default Categories", right? Maybe we could just change the button text under "Record Categories" to "All (default)" and under "Disabled by Default Categories" to "None (default)"? Sorry if I'm misunderstanding!
Would be awesome to file a trace-viewer bug here as well so I can follow along!
On Wed Feb 25 2015 at 11:29:44 AM Annie Sullivan <sull...@google.com> wrote:The ones that are checked initially for manual seem to be everything under "Record Categories" and nothing under "Disabled by Default Categories", right? Maybe we could just change the button text under "Record Categories" to "All (default)" and under "Disabled by Default Categories" to "None (default)"? Sorry if I'm misunderstanding!It tries to be smart, so it will restore the categories you selected previously. This makes it nicer when you do multiple traces at the same time. I'm guessing, at some point in the past, you selected All and haven't changed it since?If it is defaulting selecting everything, I think that's a bug.
Would be awesome to file a trace-viewer bug here as well so I can follow along!Instant trace events disappear when you zoom inTrace viewer clips rectangles when zooming in
Oops, yeah, I just tried this on a fresh install, and none of the categories in either column is selected by default. "Continuous tracing" and "System tracing" are checked, and "State sampling" is unchecked.Would it help to change the buttons to "None (default)" then?



If making it easy to return to the startup-defaults is important then we could add a reset-to-defaults button, but otherwise just a documentation should suffice, at http://www.chromium.org/developers/how-tos/trace-event-profiling-tool/recording-tracing-runs. I'd fix it but I don't have comment or edit permissions on that page. Should I file a bug?
I'll see about adding a FLOW event to my callbacks, to see if that helps with tracing.
Bug 601 describes the main issue I have when zooming in really far. With the 'instant' events it seems inevitable that people will keep zooming in until the event becomes wide enough to easily be clicked on, so this may need a UI-design fix more than anything else -- clamp the zoom level and make sure that the instant events expand to 3-5 pixels wide by this point? Having unselectable events seems cruel :-(
The docs should be updated to specify what the recommend settings are, since saying "leave the default boxes checked" is not helpful advice. The functionality of remember the settings is good and shouldn't be changed.If making it easy to return to the startup-defaults is important then we could add a reset-to-defaults button, but otherwise just a documentation should suffice, at http://www.chromium.org/developers/how-tos/trace-event-profiling-tool/recording-tracing-runs. I'd fix it but I don't have comment or edit permissions on that page. Should I file a bug?I'll see about adding a FLOW event to my callbacks, to see if that helps with tracing.Bug 601 describes the main issue I have when zooming in really far. With the 'instant' events it seems inevitable that people will keep zooming in until the event becomes wide enough to easily be clicked on, so this may need a UI-design fix more than anything else -- clamp the zoom level and make sure that the instant events expand to 3-5 pixels wide by this point? Having unselectable events seems cruel :-(For the TotalDiscardableMemoryUsage issue I'll file a bug later (I don't have my github credentials handy) but for now I've uploaded one of the traces that shows the problem to here (sorry, google.com only) and here are some screenshots:In this screen-shot you can see the purple box that I am about to click on:
After clicking the same time range is being displayed, but there is no data:
Zooming a bit leads to these artifacts:
This happens every time I trace on canary.Thanks for the help.
On Wed, Feb 25, 2015 at 8:44 AM, Dan Sinclair <dsin...@chromium.org> wrote:On Wed Feb 25 2015 at 11:38:58 AM Annie Sullivan <sull...@google.com> wrote:Oops, yeah, I just tried this on a fresh install, and none of the categories in either column is selected by default. "Continuous tracing" and "System tracing" are checked, and "State sampling" is unchecked.Would it help to change the buttons to "None (default)" then?I'm not sure how helpful that would be as tracing the default isn't really useful, heh.Maybe just a matter of fixing up any docs which suggest to changing to the defaults?dan--Bruce Dawson
--
You received this message because you are subscribed to the Google Groups "tracing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tracing+u...@chromium.org.
To post to this group, send email to tra...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/tracing/CAE5mQiO335650yetFRrMUDDy2B0XPq1Hp5apuWYk3V%2BqUhEwSQ%40mail.gmail.com.

To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/tracing/CAE5mQiO2JE%3DVvBRk23kTc8nME%3DrF3o-LbSxU7n3nCLmDNczKyQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/tracing/CAFfVe%2BGOn1varFLJzjPTER-iUcNTp84Hu5szPvvd%3DcSi4eTUmA%40mail.gmail.com.
Hmmm. That could explain my issues in my local builds (I'm synced to Feb 19th) but not canary. I'm running a canary build from yesterday and it shows the problem. Thoughts?Do we have to wait for the trace viewer changes to roll into chrome?
--Bruce Dawson
Lets teach our fearless intern how to roll DEPS! :D


I think I'm missing something, and I think there are some bugs. I think my fundamental question is how the three times associated with a flow task (posting time, execution start, execution end) are stored and correlated together from a .json file -- if I understood that then I could reverse engineer the rest.
I've been trying to figure out the flow events (lines connecting various events) and why I'm not seeing them where I need them. My hope is that flow events would say what function/source-file/line-of-code posted a task, and what the task was. I'm not seeing that happening for any events. When I select a posted task I see src_func/src_file which tell me where the message was posted from, and Start/Wall Duration which tell me about when the task was executed. Missing data is:
- The function that was actually executed (important if multiple tasks are posted from one function)
- When the task was posted
As suggested I tried to figured out why my tasks don't have flow arrows. The code (in JumpList::PostRunUpdate) followed the usual PostTask path which always uses the flow macros. So I added a loop that started five fake tasks. Once I did this then I started getting flow arrows for the fake tasks and for my real task as well!!! Well that's weird... The modified code is shown below -- I can share a CL if somebody is interested.
Finally, the tracking of when a command is issued does not seem to be accurate. In the test whose trace is shown below I issued six BrowserThread::FILE callbacks each time a tab closed -- one long and then five short. All of the events show up but for some reason the start time of the last event in each batch is wrong. There should be six with the same start time, and then six more starting about a second later. Instead the grouping is 5/6/1.
I found and looked at the .json documentation but I still couldn't figure out how it figures out the flow arrows. But I think I'm starting to figure out my confusion. It looks like the flow arrows (the "s" and "f" events) connect from a process/thread/time to a process/thread/time. I had assumed that the flow arrows also connect to a task that was run on the target thread, but it looks like they do not. It looks like that is just inferred by the person looking at the visualization. Is that correct?
The arrow keys for navigating along arcs look very handy. But that then confuses me again. If I select a task (MessageLoop::RunTask box) and type the left-arrow key then it selects a flow arrow -- how does it know which flow arrow to select? I think that is my fundamental question. My best guess is that the visualizer uses heuristics and just looks for a flow arrow that is 'nearby'. That could also explain why the flow arrows don't seem to end right at the start or end of the task boxes.
> In the case where you don't post the 5 extra tasks the even never shows up in the .json file?When I don't post the 5 extra tasks then the flow arrows for the 'real' task don't show up in the visualization. The real task shows up in the .json as MessageLoop::RunTask events, with "ph":"X". I don't know if the flow data is in the .json file because I don't know how to find the flow data for a particular task in the .json file (see the fundamental question above).
type "c:\Users\brucedawson\Downloads\trace (1).json" | findstr "0xaf54d93559f40933 0xaf54d93659f40933 969320874825 969319964858"
--
You received this message because you are subscribed to the Google Groups "tracing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tracing+u...@chromium.org.
To post to this group, send email to tra...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/tracing/CAE5mQiOjM1B4DaUKfO%2BqOVyKYsNq76SL9FmkDFxz%3DaHG%2BJwtMQ%40mail.gmail.com.
I've recently started using about://tracing to investigate some performance issues in Chrome, with help from Nat Duca, and he suggested that I bring the discussion out to the tracing mailing list.The page at http://www.chromium.org/developers/how-tos/trace-event-profiling-tool/recording-tracing-runs says to select "Manually select settings" and then leave the default boxes checked, but that doesn't work if you've ever changed the settings. Is there a way to reset to the defaults? If not then we should document what the defaults are.My test scenario is to start Canary, start tracing, open a couple of tabs (each time navigating to slashdot.org), close the tabs, and then stop tracing.Each trace shows a large box on the TotalDiscardableMemoryUsage timeline. If I click that box then everything disappears. If I try zooming then the screen is redrawn with garbage lines on it. The only way to recover from this is to reload the trace.On Nat's advice I checked ipc.flow and toplevel.flow when recording the trace, and checked Flow events when viewing the trace. My goal was to trace the JumpList::PostRunUpdate callbacks. With Flow events checked I can see lots of elegantly curve arrows connecting different events, but there are no arrows connecting to the JumpList::PostRunUpdate events on the Chrome_FileThread. I've manually traced back several levels using the debugger but clearly this doesn't scale well to customer machines. Is there some additional setting I need to check, or is there code that needs to be added to trace these tasks as well?It would be very helpful to know where these tasks fit into the overall time-scale of the browser session. In particular, I'd like to see when I opened and closed the tabs on the timeline. Is that information there?There also seem to be some presentation bugs at high zoom levels. If I zoom in far enough then sometimes the text and box get misaligned (not fatal) and sometimes the box disappears entirely! It feels like a float precision bug, although I'm not sure.Any help, especially with how to get the complete ancestry for JumpList::PostRunUpdate, would be greatly appreciated.--Bruce Dawson
python match_trace_events.py "trace (2).json" JumpList::PostRunUpdate
145418 events loaded from c:\Users\brucedawson\Downloads\trace (1).json.Start time is 969313119586Found 8 events that match JumpList::PostRunUpdateStartEvents:0: None1: None2: None3: None4: None5: None6 at 6.845220: {u'name': u'MessageLoop::PostTask', u'args': {}, u'pid': 14180, u'ts': 969319964806L,7 at 7.755209: {u'name': u'MessageLoop::PostTask', u'args': {}, u'pid': 14180, u'ts': 969320874795L,FinishEvents:0 at 1.383447: {u'name': u'MessageLoop::PostTask', u'args': {u'queue_duration': 0}, u'pid': 14180, u'1 at 2.574230: {u'name': u'MessageLoop::PostTask', u'args': {u'queue_duration': 1173}, u'pid': 14180,2 at 3.244510: {u'name': u'MessageLoop::PostTask', u'args': {u'queue_duration': 1801}, u'pid': 14180,3 at 4.323136: {u'name': u'MessageLoop::PostTask', u'args': {u'queue_duration': 905}, u'pid': 14180,4 at 4.989111: {u'name': u'MessageLoop::PostTask', u'args': {u'queue_duration': 1564}, u'pid': 14180,5 at 5.616327: {u'name': u'MessageLoop::PostTask', u'args': {u'queue_duration': 2182}, u'pid': 14180,6 at 6.845271: {u'name': u'MessageLoop::PostTask', u'args': {u'queue_duration': 0}, u'pid': 14180, u'7 at 7.755238: {u'name': u'MessageLoop::PostTask', u'args': {u'queue_duration': 0}, u'pid': 14180, u'RunTaskEvents:0 at 1.383448: {u'name': u'MessageLoop::RunTask', u'args': {u'src_func': u'JumpList::PostRunUpdate',1 at 2.574232: {u'name': u'MessageLoop::RunTask', u'args': {u'src_func': u'JumpList::PostRunUpdate',2 at 3.244512: {u'name': u'MessageLoop::RunTask', u'args': {u'src_func': u'JumpList::PostRunUpdate',3 at 4.323137: {u'name': u'MessageLoop::RunTask', u'args': {u'src_func': u'JumpList::PostRunUpdate',4 at 4.989113: {u'name': u'MessageLoop::RunTask', u'args': {u'src_func': u'JumpList::PostRunUpdate',5 at 5.616329: {u'name': u'MessageLoop::RunTask', u'args': {u'src_func': u'JumpList::PostRunUpdate',6 at 6.845272: {u'name': u'MessageLoop::RunTask', u'args': {u'src_func': u'JumpList::PostRunUpdate',7 at 7.755239: {u'name': u'MessageLoop::RunTask', u'args': {u'src_func': u'JumpList::PostRunUpdate',