• Jackson Gardner's avatar
    Improve web benchmarks measurements (#127900) · e8f4d803
    Jackson Gardner authored
    By default, the browser fuzzes the timer APIs such that they have a granularity of approximately 100 microseconds (this is due to Spectre mitigation techniques). However, many of the thing we are trying to measure actually have a much finer granularity than 100 microseconds. As a result, many of our benchmarks are extremely noisy and don't provide accurate data.
    
    By serving the initial script files with the `Cross-Origin-Opener-Policy: same-origin` and `Cross-Origin-Embedder-Policy: require-corp` HTTP headers, the browser runs the benchmarks in a `crossOriginIsolated` context, which restores the fine granularity of APIs such as `performance.now()` to microsecond precision.
    
    Also, we were considering anything an outlier that was more than one standard deviation away from the mean. In a normal distribution, that means we are only capturing 68% of the data and the rest are considered outliers. This is not ideal. Doing two standard deviations away captures 95% of the data, and the outliers are in the remaining 5%, which seems much more reasonable.
    e8f4d803
Name
Last commit
Last update
..
web Loading commit data...
animated_blur_backdrop_filter.dart Loading commit data...
animated_complex_image_filtered.dart Loading commit data...
animated_complex_opacity.dart Loading commit data...
animated_image.dart Loading commit data...
animated_placeholder.dart Loading commit data...
animation_with_microtasks.dart Loading commit data...
backdrop_filter.dart Loading commit data...
clipper_cache.dart Loading commit data...
color_filter_and_fade.dart Loading commit data...
color_filter_cache.dart Loading commit data...
color_filter_with_unstable_child.dart Loading commit data...
cubic_bezier.dart Loading commit data...
cull_opacity.dart Loading commit data...
draw_points.dart Loading commit data...
filtered_child_animation.dart Loading commit data...
fullscreen_textfield.dart Loading commit data...
gradient_perf.dart Loading commit data...
heavy_grid_view.dart Loading commit data...
large_image_changer.dart Loading commit data...
large_images.dart Loading commit data...
list_text_layout.dart Loading commit data...
multi_widget_construction.dart Loading commit data...
opacity_peephole.dart Loading commit data...
picture_cache.dart Loading commit data...
picture_cache_complexity_scoring.dart Loading commit data...
post_backdrop_filter.dart Loading commit data...
raster_cache_use_memory.dart Loading commit data...
shader_mask_cache.dart Loading commit data...
simple_animation.dart Loading commit data...
simple_scroll.dart Loading commit data...
sliders.dart Loading commit data...
stack_size.dart Loading commit data...
text.dart Loading commit data...