Skip to content

Commit

Permalink
Bug 1522685 - prefer vsync CONTENT_FRAME_TIME variant
Browse files Browse the repository at this point in the history
  • Loading branch information
tdsmith committed Jan 25, 2019
1 parent ff72fba commit 6585f8f
Showing 1 changed file with 42 additions and 41 deletions.
83 changes: 42 additions & 41 deletions dashboard.Rmd
Expand Up @@ -121,7 +121,7 @@ Performance of the last build with at least 1,000 accumulated usage hours/branch

```{r nightly_performance}
nightly_perf_summary %>%
filter(metric != "content_frame_time_vsync") %>%
filter(metric != "content_frame_time_vsync", metric != "slow_content_frame_time") %>%
arrange(desc(y)) %>%
mutate(`95% CI`=sprintf("(%.1f, %.1f)", ymin, ymax)) %>%
mutate(y=sprintf("%.1f%%", y)) %>%
Expand All @@ -136,7 +136,7 @@ Performance of the last build with at least 10,000 accumulated usage hours/branc

```{r recent_beta_performance}
beta_perf_summary %>%
filter(metric != "content_frame_time_vsync") %>%
filter(metric != "content_frame_time_vsync", metric != "slow_content_frame_time") %>%
arrange(desc(y)) %>%
mutate(`95% CI`=sprintf("(%.1f%%, %.1f%%)", ymin, ymax)) %>%
mutate(y=sprintf("%.1f%%", y)) %>%
Expand All @@ -149,45 +149,6 @@ WebRender performance expressed as percent of Gecko. Lower is better. Confidence

# Performance

## CONTENT_FRAME_TIME

#### Recent builds

```{r content_frame_time_threshold}
slow_content_frame_time_summary %>%
inner_join(recent_builds) %>%
ggplot(aes(app_build_id, y, ymin=ymin, ymax=ymax, fill=branch)) +
facet_grid(~normalized_channel, scales="free_x", space="free_x") +
geom_col(position=position_dodge()) +
geom_errorbar(width=0.2, position=position_dodge(width=1)) +
theme(axis.text.x=element_text(angle=30, hjust=1)) +
labs(title="CONTENT_FRAME_TIME: per-user percent of frames exceeding 192% vsync", x="Build ID", y="Median percentage")
```

#### All builds

```{r content_frame_time_longitudinal}
slow_content_frame_time_summary %>%
ggplot(aes(app_build_id, y, ymin=ymin, ymax=ymax, fill=branch, group=branch)) +
facet_grid(~normalized_channel, scales="free_x", space="free_x") +
geom_ribbon(alpha=0.4) +
geom_line(aes(color=branch)) +
scale_x_discrete(labels=cr_labels) +
theme(axis.text.x=element_text(angle=30, hjust=1)) +
labs(title="CONTENT_FRAME_TIME: per-user percent of frames exceeding 192% vsync", x="Build ID", y="Median percentage") +
coord_cartesian(ylim=c(0, 6))
```

Error bars reflect bootstrapped 95% confidence intervals for the median.

CONTENT_FRAME_TIME is expressed in percent of a vsync.
Since display updates only occur at vsync intervals,
all updates that take between 100% and 200% of a vsync
appear identical to the user.
200% is therefore a critical threshold, so it's important to know how often frames are slower than 200%.
We actually measure the fraction of events slower than 192% of a vsync
because, the way the histogram is defined, that's the closest bucket edge to 200%.

## CONTENT_FRAME_TIME_VSYNC

#### Recent builds
Expand Down Expand Up @@ -475,6 +436,46 @@ slow_composite_time_summary %>%

Error bars reflect bootstrapped 95% confidence intervals for the median.

## CONTENT_FRAME_TIME

#### Recent builds

```{r content_frame_time_threshold}
slow_content_frame_time_summary %>%
inner_join(recent_builds) %>%
ggplot(aes(app_build_id, y, ymin=ymin, ymax=ymax, fill=branch)) +
facet_grid(~normalized_channel, scales="free_x", space="free_x") +
geom_col(position=position_dodge()) +
geom_errorbar(width=0.2, position=position_dodge(width=1)) +
theme(axis.text.x=element_text(angle=30, hjust=1)) +
labs(title="CONTENT_FRAME_TIME: per-user percent of frames exceeding 192% vsync", x="Build ID", y="Median percentage")
```

#### All builds

```{r content_frame_time_longitudinal}
slow_content_frame_time_summary %>%
ggplot(aes(app_build_id, y, ymin=ymin, ymax=ymax, fill=branch, group=branch)) +
facet_grid(~normalized_channel, scales="free_x", space="free_x") +
geom_ribbon(alpha=0.4) +
geom_line(aes(color=branch)) +
scale_x_discrete(labels=cr_labels) +
theme(axis.text.x=element_text(angle=30, hjust=1)) +
labs(title="CONTENT_FRAME_TIME: per-user percent of frames exceeding 192% vsync", x="Build ID", y="Median percentage") +
coord_cartesian(ylim=c(0, 6))
```

Error bars reflect bootstrapped 95% confidence intervals for the median.

CONTENT_FRAME_TIME is expressed in percent of a vsync.
Since display updates only occur at vsync intervals,
all updates that take between 100% and 200% of a vsync
appear identical to the user.
200% is therefore a critical threshold, so it's important to know how often frames are slower than 200%.
We actually measure the fraction of events slower than 192% of a vsync
because, the way the histogram is defined, that's the closest bucket edge to 200%.


# Crash summary

Be cautious when interpreting crash rates from recent builds.
Expand Down

0 comments on commit 6585f8f

Please sign in to comment.