import carbonplan_benchmarks.analysis as cba
import pandas as pd
= "holoviews" pd.options.plotting.backend
Benchmarking: Individual Results
Processing benchmark results
Import dependencies
The CarbonPlan team put together some utilities for parsing, processing, and visualizing the benchmarking results in carbonplan_benchmarks. We’ll use those utilities along with the Holoviz suite of tools for visualization to show some individual benchmarking results.
Show individual results
Define URIs for the baseline images and metadata
= "s3://carbonplan-benchmarks/benchmark-data/v0.2/baselines.json"
baseline_fp = "carbonplan-benchmarks.s3.us-west-2.amazonaws.com/data/"
url_filter = (
metadata_fp "s3://carbonplan-benchmarks/benchmark-data/v0.2/data-2023-08-24T00-33-44.json"
)
Define some plot options
= {"width": 500, "height": 200} plt_opts
Load the data and baseline images
= cba.load_data(metadata_path=metadata_fp, run=0)
metadata, trace_events = cba.load_snapshots(snapshot_path=baseline_fp) snapshots
Process the data
= cba.process_run(
data =metadata, trace_events=trace_events, snapshots=snapshots
metadata )
Create summary statistics
=metadata, data=data, url_filter=url_filter) cba.create_summary(metadata
action | approach | benchmark_version | browser_name | browser_version | headless | playwright_python_version | provider | run_number | timeout | ... | filtered_requests_average_encoded_data_length | filtered_requests_maximum_encoded_data_length | zoom | duration | min_rmse | fps | request_duration | request_percent | non_request_duration | actual_chunk_size | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dataset | |||||||||||||||||||||
pyramids-v2-3857-True-256-1-0-0-f4-0-0-0-gzipL1-100 | zoom_in | dynamic-client | v0.2 | chromium | 116.0.5845.82 | True | 1.37.0 | aws | 1 | False | ... | 63488.00 | 125345.0 | 0.0 | 2313.558 | 0.0 | 59.648386 | 408.764 | 17.668198 | 1904.794 | 0.524288 |
pyramids-v2-3857-True-256-1-0-0-f4-0-0-0-gzipL1-100 | zoom_in | dynamic-client | v0.2 | chromium | 116.0.5845.82 | True | 1.37.0 | aws | 1 | False | ... | 111303.25 | 206084.0 | 1.0 | 2468.501 | 0.0 | 60.360518 | 1365.362 | 55.311381 | 1103.139 | 0.524288 |
pyramids-v2-3857-True-256-1-0-0-f4-0-0-0-gzipL1-100 | zoom_in | dynamic-client | v0.2 | chromium | 116.0.5845.82 | True | 1.37.0 | aws | 1 | False | ... | 157726.00 | 342805.0 | 2.0 | 1591.088 | 0.0 | 60.336072 | 987.093 | 62.038869 | 603.995 | 0.524288 |
pyramids-v2-3857-True-256-1-0-0-f4-0-0-0-gzipL1-100 | zoom_in | dynamic-client | v0.2 | chromium | 116.0.5845.82 | True | 1.37.0 | aws | 1 | False | ... | 164329.00 | 334586.0 | 3.0 | 1229.950 | 0.0 | 59.352006 | 593.159 | 48.226269 | 636.791 | 0.524288 |
4 rows × 34 columns
Plot the requests, frames, and baseline comparisons
= cba.plot_requests(data["request_data"], url_filter=url_filter).opts(
requests_plt **plt_opts
)= cba.plot_frames(data["frames_data"], yl=2.5).opts(**plt_opts)
frames_plt = cba.plot_screenshot_rmse(
rmse_plt =data["screenshot_data"], metadata=metadata
screenshot_data**plt_opts)
).opts(+ frames_plt + rmse_plt).cols(1) (requests_plt
/Users/max/mambaforge/envs/benchmark-maps/lib/python3.10/site-packages/holoviews/plotting/bokeh/plot.py:987: UserWarning: found multiple competing values for 'toolbar.active_drag' property; using the latest value
layout_plot = gridplot(
/Users/max/mambaforge/envs/benchmark-maps/lib/python3.10/site-packages/holoviews/plotting/bokeh/plot.py:987: UserWarning: found multiple competing values for 'toolbar.active_scroll' property; using the latest value
layout_plot = gridplot(