Deploy Tracks and other polish work#1185
Merged
Merged
Conversation
gregtatum
commented
Aug 8, 2018
Member
- More GC markers
- Sidebar polish
- Better payloads for Frame Construction
- Timeline tracks, and grouping the timeline by process
- Remove chart left margin
Change the code style for the GC optional marker fields from:
field === undefined ? null : markerDetail(...)
To
field ? markerDetail(...) : null
I'm about to add some details that will test for two or more fields, and
this will be a little bit neater.
Add the total number of tenured cells and tenured cells per second for GC minor markers. This patch also adds formatSI for formatting numbers with some SI units.
Add the numbers of cells allocated in the nursery vs the tenured heap for between each GCMinor event. Use this to also show the cells tenured statistic as a percentage.
* adjust title margins * adjust alignments by using the same grid layout for the whole sidebar * adjust max-heights for the sidebar's header * adjust the (non-)wrapping behavior for titles * make it easy to select the titles Fixes #1117
…them appropriately
This PR is for Bug 1414345. We added a "Frame Construction" tracing marker there, and this is for making it look better.
Instead of calling CallTree.preloadChildrenCache, which allocates new arrays for every parent in the call tree, implement a modified version which stores everything needed in a couple of big arrays. Since the new version is very specific to the flame graph, it is moved into flame-graph.js instead, and CallTree.preloadChildrenCache is removed.
formatNumber now supports choosing the number of sagnificant digits to use. Make use of this in formatSI and formatBytes. Change from ones to thousands after 10,000, but for the other numbers do this at 1,000,000 etc and explain this choice with a comment.
The upgrading tests were hard to find, and inconsistent with the current style of jest testing. This PR collects the upgrades into their own file, and adds the more typical describe/it blocks that make the tests run and fail in a more granular fashion.
This merge includes work from my different PRs. They were all reviewed separately, but merged in a single PR. This change was too large to do in situ, so the changes were accumulated, the commits were reviewed in separate non-merged PRs. See the following PRs for the reviews: 1. Timeline tracks store (plus this actual merge) #1115 2. Timeline tracks UI 1152 3. Add profile upgrading to ensure pids on all threads #1163 4. URL upgrades #1164 5. Timeline track component tests #1168
Fix the sidebar button margin to not break the tab bar
This PR adds "committed ranges" and "preview ranges".
getRangeSelectionFilteredThread is now called getPreviewFilteredThread
Improve flame graph performance by reducing heavy allocations (Merge PR #1170)
These patches add some new information to the GCMinor marker tooltips. The corresponding Firefox change is: https://bugzilla.mozilla.org/show_bug.cgi?id=1473213 and we should wait for that to be reviewed before merging this PR in case there are any changes.
Fixes #619, fixes #1123. Depending on the number of threads / tracks visible in the list at the top, and the height of the header area, the list of tracks can be vertically scrollable. The scrollbar for vertical scrolling causes a bunch of problems, depending on the platform: - Dragging the scrollbar thumb is currently impossible because we override the mouse events to control the range selection. - On platforms with overlay scrollbars, the scrollbar overlaps the graphs and makes it hard to interact with the parts of the graphs close to the right edge. - On platforms with classic (non-overlay) scrollbars, the scrollbar subtracts available area from the contents and causes the time scale of the graphs to be misaligned with respect to the ruler above the scroll box. Furthermore, changing a track's visibility can flip cause the track list to flip between having a scrollbar and not having a scrollbar, which makes the graphs shift. This commit addresses all these problems by reserving a fixed amount of space for the scrollbar at all times. It sets an absolute width on both the timeline ruler at the top *and* on the scrollable contents. When there is a scrollbar, the scrollbar is displayed in the reserved space, otherwise the space is empty. The reserved space is always 15px wide, regardless of the actual width of the scrollbar on the current platform. If the actual scrollbar is narrower than the reserved space, there will be a small gap. If it is wider than the reserved space, it will cover some of the contents but but will not affect the contents' size. We use calc() and viewport units (100vw) in order to compute an absolute CSS length value that we can use for the graph width. This is needed so that we can give the "insides" of the scrollable element a width that is the same regardless of the actual width of the scrollbar on the current platform. There does not seem to exist a way to use relative sizes inside a scrollable element that "ignore" the scrollbar width; e.g. "width: 100%" refers to the "inside width" of the parent element with the scrollbar width already subtracted, and there's no pure-CSS way to say "set this element's width to the *outer width* of its parent element".
Codecov Report
@@ Coverage Diff @@
## production #1185 +/- ##
==============================================
+ Coverage 73.7% 76.13% +2.43%
==============================================
Files 140 144 +4
Lines 8659 9417 +758
Branches 2038 2295 +257
==============================================
+ Hits 6382 7170 +788
+ Misses 2016 2008 -8
+ Partials 261 239 -22
Continue to review full report at Codecov.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.