iris
iris copied to clipboard
Fix usage of map_blocks in AreaWeighted and elsewhere
🚀 Pull Request
Addresses a bug raised by @hdyson in AreaWeighted which caused weights to be retained in memory even after all relevent python objects had been removed. This appears to be due to passing weights to dask.array.map_blocks as part of a partial function. It seems that while dask will remove arrays from memory after use it will not do the same for python functions. Passing weights as arguments to map_blocks ought to fix this.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 89.74%. Comparing base (
8998779) to head (d91c7c6). Report is 10 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #5767 +/- ##
=======================================
Coverage 89.74% 89.74%
=======================================
Files 92 92
Lines 22940 22942 +2
Branches 5462 5464 +2
=======================================
+ Hits 20588 20590 +2
Misses 1620 1620
Partials 732 732
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Performance Benchmark Report: eb08de2c
Performance shifts
Full benchmark results
Benchmarks that have stayed the same:
| Change | Before [2b024aac] | After [eb08de2c] | Ratio | Benchmark (Parameter) |
|----------|----------------------|---------------------|---------|------------------------------------------------------------------------------------------------------|
| | n/a | n/a | n/a | aux_factory.FactoryCommon.time_create |
| | 4.39±0.03μs | 4.36±0.1μs | 0.99 | aux_factory.HybridHeightFactory.time_create |
| | 4.96±0.04μs | 4.95±0.04μs | 1.00 | coords.AncillaryVariable.time_create |
| | 422±3ns | 420±2ns | 1.00 | coords.AuxCoord.time_bounds |
| | 8.91±0.06μs | 9.02±0.1μs | 1.01 | coords.AuxCoord.time_create |
| | 405±2ns | 407±2ns | 1.00 | coords.AuxCoord.time_points |
| | 228±20μs | 231±20μs | 1.01 | coords.AuxCoordLazy.time_bounds |
| | 12.3±0.7μs | 13.0±0.5μs | 1.06 | coords.AuxCoordLazy.time_create |
| | 225±20μs | 228±20μs | 1.01 | coords.AuxCoordLazy.time_points |
| | 5.44±0.07μs | 5.36±0.05μs | 0.99 | coords.CellMeasure.time_create |
| | 1.09±0.01μs | 1.08±0.01μs | 0.99 | coords.CellMethod.time_create |
| | n/a | n/a | n/a | coords.CoordCommon.time_create |
| | 109±1μs | 109±1μs | 1.00 | coords.DimCoord.time_create |
| | 30.7±0.4μs | 31.8±0.7μs | 1.03 | coords.DimCoord.time_regular |
| | 382±2ms | 380±2ms | 0.99 | cube.Aggregation.time_aggregated_by |
| | 59.2±0.3μs | 59.7±0.6μs | 1.01 | cube.AncillaryVariable.time_add |
| | 11.4±0.2μs | 11.7±0.3μs | 1.03 | cube.AncillaryVariable.time_create |
| | 67.1±1μs | 67.3±0.8μs | 1.00 | cube.AuxCoord.time_add |
| | 9.60±0.1μs | 9.65±0.1μs | 1.01 | cube.AuxCoord.time_create |
| | 6.02±0.05μs | 6.04±0.03μs | 1.00 | cube.AuxCoord.time_return_coord_dims |
| | 4.46±0.05μs | 4.52±0.04μs | 1.01 | cube.AuxCoord.time_return_coords |
| | 40.1±0.4μs | 40.6±0.6μs | 1.01 | cube.AuxFactory.time_add |
| | 12.4±0.1μs | 12.8±0.3μs | 1.03 | cube.AuxFactory.time_create |
| | 59.8±0.3μs | 59.2±0.2μs | 0.99 | cube.CellMeasure.time_add |
| | 11.5±0.2μs | 11.7±0.2μs | 1.02 | cube.CellMeasure.time_create |
| | 52.6±0.7μs | 53.0±0.8μs | 1.01 | cube.CellMethod.time_add |
| | 7.35±0.07μs | 7.34±0.04μs | 1.00 | cube.CellMethod.time_create |
| | n/a | n/a | n/a | cube.ComponentCommon.time_add |
| | n/a | n/a | n/a | cube.ComponentCommon.time_create |
| | 131±0.4ms | 131±0.3ms | 1.00 | cube.Concatenate.time_concatenate |
| | 6.81±0.06μs | 6.89±0.07μs | 1.01 | cube.Cube.time_basic |
| | 58.1±0.3ns | 58.1±0.5ns | 1.00 | cube.Cube.time_rename |
| | 60.8±0.4μs | 61.9±0.4μs | 1.02 | cube.Equality.time_equality |
| | 334±2ms | 334±1ms | 1.00 | cube.Merge.time_merge |
| | 28.4±2μs | 27.9±2μs | 0.98 | cube.MeshCoord.time_add(10000) |
| | 30.9±2μs | 30.9±2μs | 1.00 | cube.MeshCoord.time_add(1000000) |
| | 25.1±1μs | 25.1±0.8μs | 1.00 | cube.MeshCoord.time_add(6) |
| | 19.5±0.3μs | 19.8±0.4μs | 1.02 | cube.MeshCoord.time_create(10000) |
| | 19.2±0.3μs | 19.8±0.4μs | 1.03 | cube.MeshCoord.time_create(1000000) |
| | 18.8±0.4μs | 19.0±0.4μs | 1.01 | cube.MeshCoord.time_create(6) |
| | 52.5±5μs | 50.3±5μs | 0.96 | cube.MeshCoord.time_remove(10000) |
| | 60.4±2μs | 61.4±3μs | 1.02 | cube.MeshCoord.time_remove(1000000) |
| | 43.3±4μs | 43.0±6μs | 0.99 | cube.MeshCoord.time_remove(6) |
| | 2.02±0.2ms | 2.00±0.2ms | 0.99 | experimental.ugrid.Connectivity.time_create(1000000) |
| | 1.49±0.02ms | 1.49±0.02ms | 1.00 | experimental.ugrid.Connectivity.time_create(6) |
| | 609±10ns | 608±10ns | 1.00 | experimental.ugrid.Connectivity.time_indices(1000000) |
| | 611±8ns | 611±4ns | 1.00 | experimental.ugrid.Connectivity.time_indices(6) |
| | 19.4±2ms | 19.8±2ms | 1.02 | experimental.ugrid.Connectivity.time_location_lengths(1000000) |
| | 2.22±0.03ms | 2.27±0.03ms | 1.02 | experimental.ugrid.Connectivity.time_location_lengths(6) |
| | 22.9±3ms | 22.7±3ms | 0.99 | experimental.ugrid.Connectivity.time_validate_indices(1000000) |
| | 3.28±0.02ms | 3.31±0.08ms | 1.01 | experimental.ugrid.Connectivity.time_validate_indices(6) |
| | 3.65±0.1ms | 3.53±0.08ms | 0.97 | experimental.ugrid.ConnectivityLazy.time_create(1000000) |
| | 2.63±0.04ms | 2.69±0.03ms | 1.03 | experimental.ugrid.ConnectivityLazy.time_create(6) |
| | 241±5μs | 241±8μs | 1.00 | experimental.ugrid.ConnectivityLazy.time_indices(1000000) |
| | 236±7μs | 237±8μs | 1.00 | experimental.ugrid.ConnectivityLazy.time_indices(6) |
| | 19.7±0.6ms | 19.4±0.3ms | 0.98 | experimental.ugrid.ConnectivityLazy.time_location_lengths(1000000) |
| | 2.50±0.05ms | 2.51±0.04ms | 1.00 | experimental.ugrid.ConnectivityLazy.time_location_lengths(6) |
| | 22.1±0.4ms | 22.1±0.3ms | 1.00 | experimental.ugrid.ConnectivityLazy.time_validate_indices(1000000) |
| | 3.63±0.04ms | 3.64±0.05ms | 1.00 | experimental.ugrid.ConnectivityLazy.time_validate_indices(6) |
| | 12.5±0.1μs | 12.6±0.2μs | 1.01 | experimental.ugrid.Mesh.time_add_connectivities(1000000) |
| | 248±3μs | 253±2μs | 1.02 | experimental.ugrid.Mesh.time_add_connectivities(6) |
| | 4.84±0.04μs | 4.89±0.04μs | 1.01 | experimental.ugrid.Mesh.time_add_coords(1000000) |
| | 4.83±0.02μs | 4.86±0.03μs | 1.01 | experimental.ugrid.Mesh.time_add_coords(6) |
| | 5.04±0.04μs | 5.08±0.04μs | 1.01 | experimental.ugrid.Mesh.time_connectivities(1000000) |
| | 5.08±0.06μs | 5.15±0.05μs | 1.01 | experimental.ugrid.Mesh.time_connectivities(6) |
| | 5.83±0.09μs | 5.90±0.06μs | 1.01 | experimental.ugrid.Mesh.time_coords(1000000) |
| | 5.89±0.09μs | 5.97±0.07μs | 1.01 | experimental.ugrid.Mesh.time_coords(6) |
| | 46.9±0.3μs | 46.2±0.7μs | 0.98 | experimental.ugrid.Mesh.time_create(1000000) |
| | 301±3μs | 299±3μs | 0.99 | experimental.ugrid.Mesh.time_create(6) |
| | 73.8±3ms | 73.6±2ms | 1.00 | experimental.ugrid.Mesh.time_eq(1000000) |
| | 275±4μs | 275±2μs | 1.00 | experimental.ugrid.Mesh.time_eq(6) |
| | 4.90±0.06μs | 5.00±0.06μs | 1.02 | experimental.ugrid.Mesh.time_remove_connectivities(1000000) |
| | 4.92±0.06μs | 5.01±0.05μs | 1.02 | experimental.ugrid.Mesh.time_remove_connectivities(6) |
| | 7.26±0.04μs | 7.41±0.1μs | 1.02 | experimental.ugrid.Mesh.time_remove_coords(1000000) |
| | 7.27±0.05μs | 7.36±0.09μs | 1.01 | experimental.ugrid.Mesh.time_remove_coords(6) |
| | 9.97±0.08μs | 10.3±0.06μs | 1.04 | experimental.ugrid.MeshCoord.time_bounds(10000) |
| | 121±2ms | 124±4ms | 1.02 | experimental.ugrid.MeshCoord.time_bounds(1000000) |
| | 5.42±0.1μs | 5.33±0.05μs | 0.98 | experimental.ugrid.MeshCoord.time_bounds(6) |
| | 3.17±0.03ms | 3.25±0.05ms | 1.02 | experimental.ugrid.MeshCoord.time_create(10000) |
| | 3.24±0.03ms | 3.28±0.02ms | 1.01 | experimental.ugrid.MeshCoord.time_create(1000000) |
| | 199±2μs | 197±4μs | 0.99 | experimental.ugrid.MeshCoord.time_create(6) |
| | 3.60±0.04μs | 3.57±0.04μs | 0.99 | experimental.ugrid.MeshCoord.time_points(10000) |
| | 4.15±0.04μs | 4.12±0.04μs | 0.99 | experimental.ugrid.MeshCoord.time_points(1000000) |
| | 2.92±0.03μs | 2.94±0.04μs | 1.00 | experimental.ugrid.MeshCoord.time_points(6) |
| | 6.85±0.08ms | 6.93±0.09ms | 1.01 | experimental.ugrid.MeshCoordLazy.time_bounds(10000) |
| | 122±1ms | 121±3ms | 0.99 | experimental.ugrid.MeshCoordLazy.time_bounds(1000000) |
| | 11.6±0.5μs | 11.8±0.4μs | 1.01 | experimental.ugrid.MeshCoordLazy.time_bounds(6) |
| | 3.24±0.05ms | 3.24±0.05ms | 1.00 | experimental.ugrid.MeshCoordLazy.time_create(10000) |
| | 3.30±0.03ms | 3.29±0.05ms | 1.00 | experimental.ugrid.MeshCoordLazy.time_create(1000000) |
| | 236±10μs | 237±10μs | 1.00 | experimental.ugrid.MeshCoordLazy.time_create(6) |
| | 2.46±0.08ms | 2.43±0.06ms | 0.99 | experimental.ugrid.MeshCoordLazy.time_points(10000) |
| | 4.61±0.1ms | 4.63±0.1ms | 1.00 | experimental.ugrid.MeshCoordLazy.time_points(1000000) |
| | 8.95±1μs | 7.91±0.4μs | 0.88 | experimental.ugrid.MeshCoordLazy.time_points(6) |
| | 31.5±1μs | 32.3±1μs | 1.02 | experimental.ugrid.MeshLazy.time_add_connectivities(1000000) |
| | 290±7μs | 292±8μs | 1.01 | experimental.ugrid.MeshLazy.time_add_connectivities(6) |
| | 19.1±0.8μs | 19.4±0.9μs | 1.01 | experimental.ugrid.MeshLazy.time_add_coords(1000000) |
| | 15.3±1μs | 15.8±1μs | 1.03 | experimental.ugrid.MeshLazy.time_add_coords(6) |
| | 17.1±0.8μs | 17.4±0.9μs | 1.02 | experimental.ugrid.MeshLazy.time_connectivities(1000000) |
| | 16.0±0.4μs | 16.5±0.5μs | 1.03 | experimental.ugrid.MeshLazy.time_connectivities(6) |
| | 19.1±0.7μs | 19.7±1μs | 1.03 | experimental.ugrid.MeshLazy.time_coords(1000000) |
| | 18.5±0.5μs | 18.6±0.5μs | 1.01 | experimental.ugrid.MeshLazy.time_coords(6) |
| | 78.3±2μs | 77.2±2μs | 0.99 | experimental.ugrid.MeshLazy.time_create(1000000) |
| | 337±6μs | 338±9μs | 1.00 | experimental.ugrid.MeshLazy.time_create(6) |
| | 74.1±2ms | 74.2±2ms | 1.00 | experimental.ugrid.MeshLazy.time_eq(1000000) |
| | 333±8μs | 343±10μs | 1.03 | experimental.ugrid.MeshLazy.time_eq(6) |
| | 18.2±0.5μs | 18.2±0.6μs | 1.00 | experimental.ugrid.MeshLazy.time_remove_connectivities(1000000) |
| | 17.0±0.6μs | 17.4±0.6μs | 1.02 | experimental.ugrid.MeshLazy.time_remove_connectivities(6) |
| | 31.0±0.9μs | 32.0±1μs | 1.03 | experimental.ugrid.MeshLazy.time_remove_coords(1000000) |
| | 29.4±0.9μs | 29.9±1μs | 1.01 | experimental.ugrid.MeshLazy.time_remove_coords(6) |
| | n/a | n/a | n/a | experimental.ugrid.UGridCommon.time_create(1000000) |
| | n/a | n/a | n/a | experimental.ugrid.UGridCommon.time_create(6) |
| | 490±2ns | 508±4ns | 1.04 | experimental.ugrid.regions_combine.CombineRegionsComputeRealData.time_compute_data(50) |
| | 250±2ms | 250±2ms | 1.00 | experimental.ugrid.regions_combine.CombineRegionsComputeRealData.time_compute_data(500) |
| | 11.7±0.1ms | 11.8±0.2ms | 1.01 | experimental.ugrid.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(50) |
| | 13.3±0.4ms | 13.8±0.8ms | 1.03 | experimental.ugrid.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(500) |
| | 5.0 | 5.0 | 1.00 | experimental.ugrid.regions_combine.CombineRegionsCreateCube.track_addedmem_create_combined_cube(50) |
| | 5.0 | 5.0 | 1.00 | experimental.ugrid.regions_combine.CombineRegionsCreateCube.track_addedmem_create_combined_cube(500) |
| | 124±1ms | 126±1ms | 1.02 | experimental.ugrid.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(50) |
| | 736±8ms | 735±5ms | 1.00 | experimental.ugrid.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(500) |
| | 85.5±0.8ms | 87.3±1ms | 1.02 | experimental.ugrid.regions_combine.CombineRegionsSaveData.time_save(50) |
| | 690±4ms | 691±4ms | 1.00 | experimental.ugrid.regions_combine.CombineRegionsSaveData.time_save(500) |
| | 2.1752849999999997 | 2.1752849999999997 | 1.00 | experimental.ugrid.regions_combine.CombineRegionsSaveData.track_filesize_saved(50) |
| | 216.01528499999998 | 216.01528499999998 | 1.00 | experimental.ugrid.regions_combine.CombineRegionsSaveData.track_filesize_saved(500) |
| | 563±6μs | 562±4μs | 1.00 | import_iris.Iris.time__concatenate |
| | 161±3μs | 160±2μs | 0.99 | import_iris.Iris.time__constraints |
| | 99.9±1μs | 98.6±1μs | 0.99 | import_iris.Iris.time__data_manager |
| | 83.8±0.4μs | 83.8±0.6μs | 1.00 | import_iris.Iris.time__deprecation |
| | 107±0.4μs | 106±1μs | 1.00 | import_iris.Iris.time__lazy_data |
| | 780±10μs | 777±5μs | 1.00 | import_iris.Iris.time__merge |
| | 70.9±0.7μs | 70.5±0.7μs | 1.00 | import_iris.Iris.time__representation |
| | 430±5μs | 429±5μs | 1.00 | import_iris.Iris.time_analysis |
| | 127±2μs | 127±2μs | 1.00 | import_iris.Iris.time_analysis__area_weighted |
| | 98.2±0.4μs | 97.2±0.5μs | 0.99 | import_iris.Iris.time_analysis__grid_angles |
| | 215±1μs | 214±1μs | 0.99 | import_iris.Iris.time_analysis__interpolation |
| | 172±3μs | 168±3μs | 0.98 | import_iris.Iris.time_analysis__regrid |
| | 99.9±0.9μs | 99.5±0.8μs | 1.00 | import_iris.Iris.time_analysis__scipy_interpolate |
| | 126±3μs | 126±1μs | 1.00 | import_iris.Iris.time_analysis_calculus |
| | 278±2μs | 280±1μs | 1.01 | import_iris.Iris.time_analysis_cartography |
| | 84.6±0.7μs | 82.0±0.5μs | 0.97 | import_iris.Iris.time_analysis_geomerty |
| | 200±4μs | 197±2μs | 0.99 | import_iris.Iris.time_analysis_maths |
| | 90.4±1μs | 89.3±0.4μs | 0.99 | import_iris.Iris.time_analysis_stats |
| | 169±3μs | 163±3μs | 0.97 | import_iris.Iris.time_analysis_trajectory |
| | 268±3μs | 260±4μs | 0.97 | import_iris.Iris.time_aux_factory |
| | 80.1±1μs | 78.3±0.5μs | 0.98 | import_iris.Iris.time_common |
| | 153±4μs | 150±1μs | 0.98 | import_iris.Iris.time_common_lenient |
| | 870±7μs | 871±3μs | 1.00 | import_iris.Iris.time_common_metadata |
| | 122±0.5μs | 122±1μs | 1.00 | import_iris.Iris.time_common_mixin |
| | 1.02±0ms | 1.02±0ms | 1.00 | import_iris.Iris.time_common_resolve |
| | 183±2μs | 184±3μs | 1.00 | import_iris.Iris.time_config |
| | 105±1μs | 104±1μs | 1.00 | import_iris.Iris.time_coord_categorisation |
| | 321±8μs | 313±3μs | 0.98 | import_iris.Iris.time_coord_systems |
| | 631±3μs | 636±10μs | 1.01 | import_iris.Iris.time_coords |
| | 597±10μs | 586±8μs | 0.98 | import_iris.Iris.time_cube |
| | 203±3μs | 200±2μs | 0.99 | import_iris.Iris.time_exceptions |
| | 72.0±0.7μs | 72.2±1μs | 1.00 | import_iris.Iris.time_experimental |
| | 192±1μs | 192±1μs | 1.00 | import_iris.Iris.time_fileformats |
| | 223±3μs | 223±5μs | 1.00 | import_iris.Iris.time_fileformats__ff |
| | 2.43±0.01ms | 2.40±0.01ms | 0.99 | import_iris.Iris.time_fileformats__ff_cross_references |
| | 73.6±0.4μs | 72.9±0.6μs | 0.99 | import_iris.Iris.time_fileformats__pp_lbproc_pairs |
| | 105±0.3μs | 105±0.7μs | 1.00 | import_iris.Iris.time_fileformats_abf |
| | 314±3μs | 314±3μs | 1.00 | import_iris.Iris.time_fileformats_cf |
| | 5.47±0.05ms | 5.47±0.03ms | 1.00 | import_iris.Iris.time_fileformats_dot |
| | 67.9±0.8μs | 68.4±0.9μs | 1.01 | import_iris.Iris.time_fileformats_name |
| | 234±3μs | 233±2μs | 0.99 | import_iris.Iris.time_fileformats_name_loaders |
| | 112±2μs | 112±0.9μs | 0.99 | import_iris.Iris.time_fileformats_netcdf |
| | 110±0.7μs | 110±1μs | 1.00 | import_iris.Iris.time_fileformats_nimrod |
| | 189±3μs | 186±3μs | 0.99 | import_iris.Iris.time_fileformats_nimrod_load_rules |
| | 668±3μs | 672±6μs | 1.01 | import_iris.Iris.time_fileformats_pp |
| | 160±3μs | 158±2μs | 0.98 | import_iris.Iris.time_fileformats_pp_load_rules |
| | 121±3μs | 120±0.6μs | 0.98 | import_iris.Iris.time_fileformats_pp_save_rules |
| | 433±8μs | 434±3μs | 1.00 | import_iris.Iris.time_fileformats_rules |
| | 190±2μs | 191±3μs | 1.00 | import_iris.Iris.time_fileformats_structured_array_identification |
| | 79.0±1μs | 77.9±0.7μs | 0.99 | import_iris.Iris.time_fileformats_um |
| | 150±3μs | 150±2μs | 1.00 | import_iris.Iris.time_fileformats_um__fast_load |
| | 129±2μs | 129±0.9μs | 1.00 | import_iris.Iris.time_fileformats_um__fast_load_structured_fields |
| | 70.9±0.8μs | 69.3±0.5μs | 0.98 | import_iris.Iris.time_fileformats_um__ff_replacement |
| | 76.6±0.3μs | 77.3±0.6μs | 1.01 | import_iris.Iris.time_fileformats_um__optimal_array_structuring |
| | 872±3μs | 870±5μs | 1.00 | import_iris.Iris.time_fileformats_um_cf_map |
| | 126±0.7μs | 125±0.5μs | 0.99 | import_iris.Iris.time_io |
| | 158±2μs | 157±2μs | 0.99 | import_iris.Iris.time_io_format_picker |
| | 198±1μs | 199±0.9μs | 1.00 | import_iris.Iris.time_iris |
| | 118±1μs | 116±0.9μs | 0.98 | import_iris.Iris.time_iterate |
| | 8.08±0.06ms | 8.11±0.04ms | 1.00 | import_iris.Iris.time_palette |
| | 302±6μs | 299±4μs | 0.99 | import_iris.Iris.time_plot |
| | 93.2±0.7μs | 92.2±0.7μs | 0.99 | import_iris.Iris.time_quickplot |
| | 1.94±0.02ms | 1.94±0.02ms | 1.00 | import_iris.Iris.time_std_names |
| | 1.69±0.01ms | 1.70±0.01ms | 1.01 | import_iris.Iris.time_symbols |
| | 43.6±1ms | 42.7±0.8ms | 0.98 | import_iris.Iris.time_tests |
| | 233±3μs | 232±3μs | 0.99 | import_iris.Iris.time_third_party_cartopy |
| | 4.85±0.05ms | 4.81±0.03ms | 0.99 | import_iris.Iris.time_third_party_cf_units |
| | 109±0.9μs | 109±0.6μs | 1.00 | import_iris.Iris.time_third_party_cftime |
| | 2.67±0.02ms | 2.66±0.03ms | 1.00 | import_iris.Iris.time_third_party_matplotlib |
| | 1.01±0.01ms | 1.00±0ms | 1.00 | import_iris.Iris.time_third_party_numpy |
| | 159±2μs | 156±0.9μs | 0.98 | import_iris.Iris.time_third_party_scipy |
| | 92.5±0.7μs | 91.8±1μs | 0.99 | import_iris.Iris.time_time |
| | 277±4μs | 276±2μs | 0.99 | import_iris.Iris.time_util |
| | 83.2±1μs | 83.8±0.9μs | 1.01 | iterate.IZip.time_izip |
| | 7.32±0.09ms | 7.42±0.1ms | 1.01 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'FF') |
| | 22.3±0.3ms | 22.7±0.4ms | 1.02 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'NetCDF') |
| | 8.09±0.07ms | 8.15±0.1ms | 1.01 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'PP') |
| | 7.30±0.03ms | 7.45±0.09ms | 1.02 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'FF') |
| | 20.4±0.2ms | 20.1±0.2ms | 0.99 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'NetCDF') |
| | 7.99±0.04ms | 8.08±0.02ms | 1.01 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'PP') |
| | 1.22±0.01s | 1.23±0.01s | 1.01 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'FF') |
| | 19.3±0.2ms | 19.2±0.3ms | 0.99 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'NetCDF') |
| | 1.38±0.01s | 1.37±0.02s | 0.99 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'PP') |
| | 1.23±0.01s | 1.24±0.01s | 1.01 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'FF') |
| | 19.0±0.1ms | 19.2±0.2ms | 1.01 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'NetCDF') |
| | 1.38±0.01s | 1.39±0.01s | 1.01 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'PP') |
| | 3.52±0.01ms | 3.58±0.06ms | 1.02 | load.LoadAndRealise.time_load((50, 50, 2), False, 'FF') |
| | 18.5±0.1ms | 18.8±0.2ms | 1.01 | load.LoadAndRealise.time_load((50, 50, 2), False, 'NetCDF') |
| | 3.82±0.04ms | 3.81±0.05ms | 1.00 | load.LoadAndRealise.time_load((50, 50, 2), False, 'PP') |
| | 3.57±0.05ms | 3.54±0.02ms | 0.99 | load.LoadAndRealise.time_load((50, 50, 2), True, 'FF') |
| | 18.7±0.3ms | 18.8±0.2ms | 1.01 | load.LoadAndRealise.time_load((50, 50, 2), True, 'NetCDF') |
| | 3.79±0.03ms | 3.80±0.04ms | 1.00 | load.LoadAndRealise.time_load((50, 50, 2), True, 'PP') |
| | 36.4±3ms | 34.1±2ms | 0.94 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'FF') |
| | 20.0±0.7ms | 19.6±0.2ms | 0.98 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'NetCDF') |
| | 13.5±2ms | 13.8±1ms | 1.02 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'PP') |
| | 25.7±2ms | 24.9±0.8ms | 0.97 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'FF') |
| | 72.7±1ms | 72.7±1ms | 1.00 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'NetCDF') |
| | 25.7±1ms | 25.3±0.7ms | 0.98 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'PP') |
| | 377±3ms | 380±1ms | 1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'FF') |
| | 2.78±0.06ms | 2.79±0.1ms | 1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'NetCDF') |
| | 383±5ms | 387±3ms | 1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'PP') |
| | 385±3ms | 386±3ms | 1.00 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'FF') |
| | 2.87±0.1ms | 2.87±0.09ms | 1.00 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'NetCDF') |
| | 388±3ms | 389±2ms | 1.00 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'PP') |
| | 1.36±0.08ms | 1.35±0.05ms | 0.99 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'FF') |
| | 2.85±0.2ms | 2.74±0.1ms | 0.96 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'NetCDF') |
| | 1.35±0.08ms | 1.38±0.05ms | 1.02 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'PP') |
| | 1.37±0.08ms | 1.36±0.05ms | 0.99 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'FF') |
| | 2.81±0.2ms | 2.89±0.07ms | 1.03 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'NetCDF') |
| | 1.38±0.07ms | 1.39±0.07ms | 1.01 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'PP') |
| | 335±4ms | 334±3ms | 1.00 | load.ManyVars.time_many_var_load |
| | 7.49±0.06ms | 7.56±0.07ms | 1.01 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'FF') |
| | 8.16±0.03ms | 8.28±0.1ms | 1.01 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'PP') |
| | 1.25±0.01s | 1.25±0.01s | 1.00 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'FF') |
| | 1.40±0.01s | 1.41±0.01s | 1.01 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'PP') |
| | 3.62±0.03ms | 3.60±0.04ms | 1.00 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'FF') |
| | 3.85±0.03ms | 3.88±0.03ms | 1.01 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'PP') |
| | 7.28±0.04ms | 7.38±0.05ms | 1.01 | load.StructuredFF.time_structured_load((1280, 960, 5), False) |
| | 4.14±0.02ms | 4.18±0.02ms | 1.01 | load.StructuredFF.time_structured_load((1280, 960, 5), True) |
| | 1.22±0.02s | 1.22±0.01s | 1.00 | load.StructuredFF.time_structured_load((2, 2, 1000), False) |
| | 282±1ms | 287±2ms | 1.02 | load.StructuredFF.time_structured_load((2, 2, 1000), True) |
| | 3.56±0.02ms | 3.59±0.03ms | 1.01 | load.StructuredFF.time_structured_load((2, 2, 2), False) |
| | 3.20±0.02ms | 3.23±0.03ms | 1.01 | load.StructuredFF.time_structured_load((2, 2, 2), True) |
| | 128±2ms | 129±3ms | 1.01 | load.TimeConstraint.time_time_constraint(20, 'FF') |
| | 22.0±0.3ms | 22.0±0.2ms | 1.00 | load.TimeConstraint.time_time_constraint(20, 'NetCDF') |
| | 142±2ms | 147±4ms | 1.03 | load.TimeConstraint.time_time_constraint(20, 'PP') |
| | 25.8±0.4ms | 26.8±0.5ms | 1.04 | load.TimeConstraint.time_time_constraint(3, 'FF') |
| | 21.3±0.2ms | 21.6±0.2ms | 1.01 | load.TimeConstraint.time_time_constraint(3, 'NetCDF') |
| | 28.0±0.6ms | 28.2±0.3ms | 1.01 | load.TimeConstraint.time_time_constraint(3, 'PP') |
| | 16.6±0.4ms | 16.7±0.5ms | 1.00 | load.ugrid.BasicLoading.time_load_file(1) |
| | 35.8±0.6ms | 36.5±0.5ms | 1.02 | load.ugrid.BasicLoading.time_load_file(200000) |
| | 13.1±0.2ms | 13.4±0.3ms | 1.02 | load.ugrid.BasicLoading.time_load_mesh(1) |
| | 20.4±0.2ms | 20.2±0.6ms | 0.99 | load.ugrid.BasicLoading.time_load_mesh(200000) |
| | 16.3±0.2ms | 16.7±0.3ms | 1.02 | load.ugrid.BasicLoadingTime.time_load_file(1) |
| | 19.1±0.4ms | 19.1±0.4ms | 1.00 | load.ugrid.BasicLoadingTime.time_load_file(200000) |
| | 13.4±0.2ms | 13.0±0.2ms | 0.97 | load.ugrid.BasicLoadingTime.time_load_mesh(1) |
| | 15.8±0.3ms | 16.2±0.4ms | 1.03 | load.ugrid.BasicLoadingTime.time_load_mesh(200000) |
| | 17.3±0.3ms | 17.4±0.4ms | 1.00 | load.ugrid.Callback.time_load_file_callback(1) |
| | 43.2±0.6ms | 43.7±0.3ms | 1.01 | load.ugrid.Callback.time_load_file_callback(200000) |
| | 17.2±0.2ms | 17.2±0.2ms | 1.00 | load.ugrid.CallbackTime.time_load_file_callback(1) |
| | 20.6±0.4ms | 20.3±0.4ms | 0.99 | load.ugrid.CallbackTime.time_load_file_callback(200000) |
| | 2.59±0.1ms | 2.55±0.07ms | 0.98 | load.ugrid.DataRealisation.time_realise_data(10000) |
| | 5.43±0.1ms | 5.50±0.1ms | 1.01 | load.ugrid.DataRealisation.time_realise_data(200000) |
| | 38.7±0.6ms | 38.2±1ms | 0.99 | load.ugrid.DataRealisationTime.time_realise_data(10000) |
| | 828±7ms | 821±5ms | 0.99 | load.ugrid.DataRealisationTime.time_realise_data(200000) |
| | 101±0.3ns | 101±0.3ns | 1.00 | metadata_manager_factory.MetadataManagerFactory.time_AncillaryVariableMetadata_fields |
| | 892±8ns | 914±20ns | 1.02 | metadata_manager_factory.MetadataManagerFactory.time_AncillaryVariableMetadata_values |
| | 101±0.3ns | 102±2ns | 1.01 | metadata_manager_factory.MetadataManagerFactory.time_BaseMetadata_fields |
| | 905±7ns | 888±8ns | 0.98 | metadata_manager_factory.MetadataManagerFactory.time_BaseMetadata_values |
| | 103±1ns | 102±1ns | 1.00 | metadata_manager_factory.MetadataManagerFactory.time_CellMeasuresMetadata_fields |
| | 1.00±0.01μs | 1.02±0.02μs | 1.02 | metadata_manager_factory.MetadataManagerFactory.time_CellMeasuresMetadata_values |
| | 101±0.3ns | 102±1ns | 1.01 | metadata_manager_factory.MetadataManagerFactory.time_CoordMetadata_fields |
| | 1.08±0.01μs | 1.07±0.02μs | 0.99 | metadata_manager_factory.MetadataManagerFactory.time_CoordMetadata_values |
| | 102±0.4ns | 102±0.8ns | 1.00 | metadata_manager_factory.MetadataManagerFactory.time_CubeMetadata_fields |
| | 992±3ns | 994±10ns | 1.00 | metadata_manager_factory.MetadataManagerFactory.time_CubeMetadata_values |
| | 101±0.5ns | 102±0.6ns | 1.00 | metadata_manager_factory.MetadataManagerFactory.time_DimCoordMetadata_fields |
| | 1.12±0.01μs | 1.14±0.02μs | 1.02 | metadata_manager_factory.MetadataManagerFactory.time_DimCoordMetadata_values |
| | 1.00±0.02μs | 1.05±0.01μs | 1.05 | metadata_manager_factory.MetadataManagerFactory__create.time_AncillaryVariableMetadata(1) |
| | 6.73±0.08μs | 7.14±0.1μs | 1.06 | metadata_manager_factory.MetadataManagerFactory__create.time_AncillaryVariableMetadata(10) |
| | 64.3±0.8μs | 64.9±2μs | 1.01 | metadata_manager_factory.MetadataManagerFactory__create.time_AncillaryVariableMetadata(100) |
| | 994±7ns | 1.02±0.02μs | 1.02 | metadata_manager_factory.MetadataManagerFactory__create.time_BaseMetadata(1) |
| | 6.79±0.08μs | 7.04±0.2μs | 1.04 | metadata_manager_factory.MetadataManagerFactory__create.time_BaseMetadata(10) |
| | 63.3±1μs | 63.3±0.6μs | 1.00 | metadata_manager_factory.MetadataManagerFactory__create.time_BaseMetadata(100) |
| | 1.04±0.02μs | 1.06±0.02μs | 1.02 | metadata_manager_factory.MetadataManagerFactory__create.time_CellMeasureMetadata(1) |
| | 7.32±0.2μs | 7.54±0.2μs | 1.03 | metadata_manager_factory.MetadataManagerFactory__create.time_CellMeasureMetadata(10) |
| | 68.9±0.9μs | 70.3±4μs | 1.02 | metadata_manager_factory.MetadataManagerFactory__create.time_CellMeasureMetadata(100) |
| | 1.08±0.01μs | 1.13±0.01μs | 1.04 | metadata_manager_factory.MetadataManagerFactory__create.time_CoordMetadata(1) |
| | 7.64±0.04μs | 8.14±0.1μs | 1.06 | metadata_manager_factory.MetadataManagerFactory__create.time_CoordMetadata(10) |
| | 71.5±0.4μs | 74.9±2μs | 1.05 | metadata_manager_factory.MetadataManagerFactory__create.time_CoordMetadata(100) |
| | 1.04±0.01μs | 1.07±0.01μs | 1.02 | metadata_manager_factory.MetadataManagerFactory__create.time_CubeMetadata(1) |
| | 7.21±0.04μs | 7.50±0.07μs | 1.04 | metadata_manager_factory.MetadataManagerFactory__create.time_CubeMetadata(10) |
| | 68.4±0.6μs | 69.2±1μs | 1.01 | metadata_manager_factory.MetadataManagerFactory__create.time_CubeMetadata(100) |
| | 1.12±0.02μs | 1.14±0.01μs | 1.02 | metadata_manager_factory.MetadataManagerFactory__create.time_DimCoordMetadata(1) |
| | 8.01±0.05μs | 8.41±0.1μs | 1.05 | metadata_manager_factory.MetadataManagerFactory__create.time_DimCoordMetadata(10) |
| | 76.3±0.8μs | 78.3±2μs | 1.03 | metadata_manager_factory.MetadataManagerFactory__create.time_DimCoordMetadata(100) |
| | 110±2ns | 106±1ns | 0.97 | mixin.CFVariableMixin.time_get_attributes |
| | 108±1ns | 107±0.5ns | 0.99 | mixin.CFVariableMixin.time_get_long_name |
| | 955±9ns | 947±20ns | 0.99 | mixin.CFVariableMixin.time_get_metadata |
| | 109±2ns | 107±0.4ns | 0.98 | mixin.CFVariableMixin.time_get_standard_name |
| | 109±2ns | 107±1ns | 0.99 | mixin.CFVariableMixin.time_get_units |
| | 109±0.8ns | 106±2ns | 0.97 | mixin.CFVariableMixin.time_get_var_name |
| | 683±10ns | 708±10ns | 1.04 | mixin.CFVariableMixin.time_set_attributes |
| | 115±0.5ns | 114±0.4ns | 1.00 | mixin.CFVariableMixin.time_set_long_name |
| | 3.47±0.02μs | 3.46±0.02μs | 1.00 | mixin.CFVariableMixin.time_set_metadata__dict |
| | 4.36±0.04μs | 4.41±0.03μs | 1.01 | mixin.CFVariableMixin.time_set_metadata__metadata |
| | 4.34±0.03μs | 4.32±0.03μs | 1.00 | mixin.CFVariableMixin.time_set_metadata__tuple |
| | 553±10ns | 550±6ns | 1.00 | mixin.CFVariableMixin.time_set_standard_name |
| | 417±3ns | 418±4ns | 1.00 | mixin.CFVariableMixin.time_set_units |
| | 438±4ns | 439±10ns | 1.00 | mixin.CFVariableMixin.time_set_var_name |
| | 369±3ms | 372±2ms | 1.01 | plot.AuxSort.time_aux_sort |
| | 77.7±4ms | 77.6±2ms | 1.00 | regridding.CurvilinearRegridding.time_regrid_pic |
| | 95.0±0.9ms | 96.8±1ms | 1.02 | regridding.HorizontalChunkedRegridding.time_regrid_area_w |
| | 49.9±2ms | 49.3±3ms | 0.99 | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid |
| | 3.68±0.04ms | 3.72±0.03ms | 1.01 | save.NetcdfSave.time_netcdf_save_cube(50, False) |
| | 87.2±1ms | 87.7±0.8ms | 1.01 | save.NetcdfSave.time_netcdf_save_cube(50, True) |
| | 54.5±0.8ms | 54.5±0.9ms | 1.00 | save.NetcdfSave.time_netcdf_save_cube(600, False) |
| | 588±3ms | 591±6ms | 1.01 | save.NetcdfSave.time_netcdf_save_cube(600, True) |
| | 101±2ns | 102±0.4ns | 1.01 | save.NetcdfSave.time_netcdf_save_mesh(50, False) |
| | 73.1±1ms | 74.5±0.9ms | 1.02 | save.NetcdfSave.time_netcdf_save_mesh(50, True) |
| | 102±2ns | 101±3ns | 1.00 | save.NetcdfSave.time_netcdf_save_mesh(600, False) |
| | 520±4ms | 516±6ms | 0.99 | save.NetcdfSave.time_netcdf_save_mesh(600, True) |
| | 36.7±1ms | 36.4±1ms | 0.99 | stats.PearsonR.time_lazy |
| | 19.0±0.3ms | 18.9±0.2ms | 0.99 | stats.PearsonR.time_real |
| | 23.5±0.2ms | 22.8±1ms | 0.97 | trajectory.TrajectoryInterpolation.time_trajectory_linear |
| | 59.7±0.2ms | 60.3±1ms | 1.01 | trajectory.TrajectoryInterpolation.time_trajectory_nearest |
Generated by GHA run 8019958940
Performance Benchmark Report: d37cde8f
Performance shifts
Full benchmark results
Benchmarks that have stayed the same:
| Change | Before [2b024aac] | After [d37cde8f] | Ratio | Benchmark (Parameter) |
|----------|----------------------|---------------------|---------|------------------------------------------------------------------------------------------------------|
| | n/a | n/a | n/a | aux_factory.FactoryCommon.time_create |
| | 4.51±0.07μs | 4.42±0.04μs | 0.98 | aux_factory.HybridHeightFactory.time_create |
| | 5.00±0.08μs | 4.92±0.04μs | 0.98 | coords.AncillaryVariable.time_create |
| | 432±10ns | 431±3ns | 1.00 | coords.AuxCoord.time_bounds |
| | 9.05±0.09μs | 8.92±0.09μs | 0.99 | coords.AuxCoord.time_create |
| | 414±5ns | 414±7ns | 1.00 | coords.AuxCoord.time_points |
| | 230±20μs | 230±20μs | 1.00 | coords.AuxCoordLazy.time_bounds |
| | 13.1±0.8μs | 12.6±0.8μs | 0.96 | coords.AuxCoordLazy.time_create |
| | 227±20μs | 226±20μs | 1.00 | coords.AuxCoordLazy.time_points |
| | 5.44±0.07μs | 5.37±0.04μs | 0.99 | coords.CellMeasure.time_create |
| | 1.11±0.03μs | 1.08±0.02μs | 0.98 | coords.CellMethod.time_create |
| | n/a | n/a | n/a | coords.CoordCommon.time_create |
| | 108±0.5μs | 108±0.8μs | 0.99 | coords.DimCoord.time_create |
| | 31.5±0.3μs | 32.4±0.5μs | 1.03 | coords.DimCoord.time_regular |
| | 379±6ms | 374±6ms | 0.99 | cube.Aggregation.time_aggregated_by |
| | 59.1±0.8μs | 59.3±0.4μs | 1.00 | cube.AncillaryVariable.time_add |
| | 11.3±0.2μs | 11.6±0.2μs | 1.03 | cube.AncillaryVariable.time_create |
| | 66.6±0.4μs | 67.9±0.7μs | 1.02 | cube.AuxCoord.time_add |
| | 9.58±0.04μs | 9.54±0.07μs | 1.00 | cube.AuxCoord.time_create |
| | 5.99±0.07μs | 6.05±0.1μs | 1.01 | cube.AuxCoord.time_return_coord_dims |
| | 4.48±0.07μs | 4.46±0.06μs | 1.00 | cube.AuxCoord.time_return_coords |
| | 40.5±0.4μs | 40.1±0.4μs | 0.99 | cube.AuxFactory.time_add |
| | 12.8±0.3μs | 12.6±0.2μs | 0.98 | cube.AuxFactory.time_create |
| | 60.1±1μs | 58.9±0.4μs | 0.98 | cube.CellMeasure.time_add |
| | 11.5±0.2μs | 11.5±0.3μs | 1.00 | cube.CellMeasure.time_create |
| | 52.6±0.4μs | 52.2±0.3μs | 0.99 | cube.CellMethod.time_add |
| | 7.34±0.09μs | 7.31±0.04μs | 1.00 | cube.CellMethod.time_create |
| | n/a | n/a | n/a | cube.ComponentCommon.time_add |
| | n/a | n/a | n/a | cube.ComponentCommon.time_create |
| | 130±0.6ms | 130±0.6ms | 1.00 | cube.Concatenate.time_concatenate |
| | 6.86±0.05μs | 6.90±0.03μs | 1.01 | cube.Cube.time_basic |
| | 59.1±0.4ns | 58.4±0.3ns | 0.99 | cube.Cube.time_rename |
| | 61.0±0.5μs | 61.2±0.5μs | 1.00 | cube.Equality.time_equality |
| | 327±4ms | 328±4ms | 1.00 | cube.Merge.time_merge |
| | 29.0±2μs | 28.3±2μs | 0.98 | cube.MeshCoord.time_add(10000) |
| | 30.9±1μs | 31.3±3μs | 1.01 | cube.MeshCoord.time_add(1000000) |
| | 26.1±2μs | 26.7±2μs | 1.02 | cube.MeshCoord.time_add(6) |
| | 19.8±0.3μs | 19.7±0.4μs | 0.99 | cube.MeshCoord.time_create(10000) |
| | 19.4±0.3μs | 19.5±0.5μs | 1.00 | cube.MeshCoord.time_create(1000000) |
| | 19.0±0.3μs | 19.0±0.1μs | 1.00 | cube.MeshCoord.time_create(6) |
| | 53.6±7μs | 53.1±6μs | 0.99 | cube.MeshCoord.time_remove(10000) |
| | 60.5±4μs | 59.6±3μs | 0.99 | cube.MeshCoord.time_remove(1000000) |
| | 44.1±9μs | 44.4±9μs | 1.01 | cube.MeshCoord.time_remove(6) |
| | 2.07±0.2ms | 2.05±0.2ms | 0.99 | experimental.ugrid.Connectivity.time_create(1000000) |
| | 1.50±0.02ms | 1.51±0.02ms | 1.00 | experimental.ugrid.Connectivity.time_create(6) |
| | 621±7ns | 617±10ns | 0.99 | experimental.ugrid.Connectivity.time_indices(1000000) |
| | 622±7ns | 621±10ns | 1.00 | experimental.ugrid.Connectivity.time_indices(6) |
| | 19.9±2ms | 19.9±2ms | 1.00 | experimental.ugrid.Connectivity.time_location_lengths(1000000) |
| | 2.26±0.04ms | 2.28±0.03ms | 1.01 | experimental.ugrid.Connectivity.time_location_lengths(6) |
| | 23.1±3ms | 22.8±3ms | 0.99 | experimental.ugrid.Connectivity.time_validate_indices(1000000) |
| | 3.37±0.06ms | 3.44±0.07ms | 1.02 | experimental.ugrid.Connectivity.time_validate_indices(6) |
| | 3.56±0.2ms | 3.51±0.3ms | 0.98 | experimental.ugrid.ConnectivityLazy.time_create(1000000) |
| | 2.68±0.06ms | 2.69±0.03ms | 1.00 | experimental.ugrid.ConnectivityLazy.time_create(6) |
| | 248±10μs | 244±9μs | 0.99 | experimental.ugrid.ConnectivityLazy.time_indices(1000000) |
| | 238±9μs | 236±8μs | 0.99 | experimental.ugrid.ConnectivityLazy.time_indices(6) |
| | 19.8±0.5ms | 19.8±0.4ms | 1.00 | experimental.ugrid.ConnectivityLazy.time_location_lengths(1000000) |
| | 2.55±0.04ms | 2.52±0.08ms | 0.98 | experimental.ugrid.ConnectivityLazy.time_location_lengths(6) |
| | 22.3±0.7ms | 21.9±0.7ms | 0.99 | experimental.ugrid.ConnectivityLazy.time_validate_indices(1000000) |
| | 3.69±0.06ms | 3.66±0.1ms | 0.99 | experimental.ugrid.ConnectivityLazy.time_validate_indices(6) |
| | 12.7±0.1μs | 12.7±0.1μs | 1.00 | experimental.ugrid.Mesh.time_add_connectivities(1000000) |
| | 255±2μs | 255±5μs | 1.00 | experimental.ugrid.Mesh.time_add_connectivities(6) |
| | 4.94±0.04μs | 4.96±0.09μs | 1.01 | experimental.ugrid.Mesh.time_add_coords(1000000) |
| | 4.99±0.08μs | 4.95±0.05μs | 0.99 | experimental.ugrid.Mesh.time_add_coords(6) |
| | 4.99±0.08μs | 5.05±0.07μs | 1.01 | experimental.ugrid.Mesh.time_connectivities(1000000) |
| | 5.02±0.04μs | 5.07±0.07μs | 1.01 | experimental.ugrid.Mesh.time_connectivities(6) |
| | 5.86±0.08μs | 5.84±0.08μs | 1.00 | experimental.ugrid.Mesh.time_coords(1000000) |
| | 5.92±0.05μs | 5.83±0.05μs | 0.99 | experimental.ugrid.Mesh.time_coords(6) |
| | 46.3±0.9μs | 45.2±0.4μs | 0.98 | experimental.ugrid.Mesh.time_create(1000000) |
| | 298±4μs | 299±7μs | 1.00 | experimental.ugrid.Mesh.time_create(6) |
| | 75.6±4ms | 74.3±5ms | 0.98 | experimental.ugrid.Mesh.time_eq(1000000) |
| | 275±3μs | 278±4μs | 1.01 | experimental.ugrid.Mesh.time_eq(6) |
| | 4.87±0.02μs | 4.86±0.07μs | 1.00 | experimental.ugrid.Mesh.time_remove_connectivities(1000000) |
| | 4.89±0.03μs | 4.96±0.05μs | 1.01 | experimental.ugrid.Mesh.time_remove_connectivities(6) |
| | 7.41±0.07μs | 7.40±0.06μs | 1.00 | experimental.ugrid.Mesh.time_remove_coords(1000000) |
| | 7.51±0.1μs | 7.39±0.1μs | 0.98 | experimental.ugrid.Mesh.time_remove_coords(6) |
| | 10.1±0.1μs | 10.2±0.1μs | 1.01 | experimental.ugrid.MeshCoord.time_bounds(10000) |
| | 119±5ms | 117±4ms | 0.98 | experimental.ugrid.MeshCoord.time_bounds(1000000) |
| | 5.32±0.08μs | 5.29±0.05μs | 0.99 | experimental.ugrid.MeshCoord.time_bounds(6) |
| | 3.23±0.05ms | 3.19±0.05ms | 0.99 | experimental.ugrid.MeshCoord.time_create(10000) |
| | 3.25±0.04ms | 3.25±0.07ms | 1.00 | experimental.ugrid.MeshCoord.time_create(1000000) |
| | 202±3μs | 199±1μs | 0.99 | experimental.ugrid.MeshCoord.time_create(6) |
| | 3.62±0.04μs | 3.64±0.04μs | 1.00 | experimental.ugrid.MeshCoord.time_points(10000) |
| | 4.23±0.06μs | 4.27±0.04μs | 1.01 | experimental.ugrid.MeshCoord.time_points(1000000) |
| | 2.99±0.02μs | 2.98±0.04μs | 0.99 | experimental.ugrid.MeshCoord.time_points(6) |
| | 6.97±0.4ms | 6.91±0.4ms | 0.99 | experimental.ugrid.MeshCoordLazy.time_bounds(10000) |
| | 119±5ms | 117±5ms | 0.98 | experimental.ugrid.MeshCoordLazy.time_bounds(1000000) |
| | 12.0±2μs | 11.9±0.8μs | 1.00 | experimental.ugrid.MeshCoordLazy.time_bounds(6) |
| | 3.32±0.08ms | 3.30±0.07ms | 0.99 | experimental.ugrid.MeshCoordLazy.time_create(10000) |
| | 3.32±0.08ms | 3.30±0.09ms | 0.99 | experimental.ugrid.MeshCoordLazy.time_create(1000000) |
| | 241±10μs | 237±7μs | 0.98 | experimental.ugrid.MeshCoordLazy.time_create(6) |
| | 2.46±0.2ms | 2.43±0.2ms | 0.99 | experimental.ugrid.MeshCoordLazy.time_points(10000) |
| | 4.51±0.3ms | 4.47±0.2ms | 0.99 | experimental.ugrid.MeshCoordLazy.time_points(1000000) |
| | 8.34±1μs | 8.06±1μs | 0.97 | experimental.ugrid.MeshCoordLazy.time_points(6) |
| | 32.4±1μs | 32.8±1μs | 1.01 | experimental.ugrid.MeshLazy.time_add_connectivities(1000000) |
| | 295±10μs | 294±7μs | 1.00 | experimental.ugrid.MeshLazy.time_add_connectivities(6) |
| | 19.5±1μs | 18.8±1μs | 0.97 | experimental.ugrid.MeshLazy.time_add_coords(1000000) |
| | 15.3±0.8μs | 15.3±0.9μs | 1.00 | experimental.ugrid.MeshLazy.time_add_coords(6) |
| | 17.4±0.5μs | 17.0±0.5μs | 0.98 | experimental.ugrid.MeshLazy.time_connectivities(1000000) |
| | 16.5±0.5μs | 16.2±0.5μs | 0.98 | experimental.ugrid.MeshLazy.time_connectivities(6) |
| | 19.4±0.7μs | 19.4±0.7μs | 1.00 | experimental.ugrid.MeshLazy.time_coords(1000000) |
| | 18.7±2μs | 19.0±1μs | 1.02 | experimental.ugrid.MeshLazy.time_coords(6) |
| | 79.2±3μs | 79.6±5μs | 1.00 | experimental.ugrid.MeshLazy.time_create(1000000) |
| | 337±6μs | 341±10μs | 1.01 | experimental.ugrid.MeshLazy.time_create(6) |
| | 72.2±6ms | 73.4±5ms | 1.02 | experimental.ugrid.MeshLazy.time_eq(1000000) |
| | 358±20μs | 350±20μs | 0.98 | experimental.ugrid.MeshLazy.time_eq(6) |
| | 18.9±0.9μs | 19.5±1μs | 1.03 | experimental.ugrid.MeshLazy.time_remove_connectivities(1000000) |
| | 17.4±1μs | 17.3±1μs | 1.00 | experimental.ugrid.MeshLazy.time_remove_connectivities(6) |
| | 32.0±1μs | 31.5±1μs | 0.98 | experimental.ugrid.MeshLazy.time_remove_coords(1000000) |
| | 30.1±2μs | 29.8±3μs | 0.99 | experimental.ugrid.MeshLazy.time_remove_coords(6) |
| | n/a | n/a | n/a | experimental.ugrid.UGridCommon.time_create(1000000) |
| | n/a | n/a | n/a | experimental.ugrid.UGridCommon.time_create(6) |
| | 515±10ns | 522±7ns | 1.01 | experimental.ugrid.regions_combine.CombineRegionsComputeRealData.time_compute_data(50) |
| | 250±2ms | 248±2ms | 0.99 | experimental.ugrid.regions_combine.CombineRegionsComputeRealData.time_compute_data(500) |
| | 11.7±0.3ms | 11.6±0.2ms | 0.99 | experimental.ugrid.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(50) |
| | 13.6±0.6ms | 14.1±0.5ms | 1.04 | experimental.ugrid.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(500) |
| | 5.0 | 5.0 | 1.00 | experimental.ugrid.regions_combine.CombineRegionsCreateCube.track_addedmem_create_combined_cube(50) |
| | 5.0 | 5.0 | 1.00 | experimental.ugrid.regions_combine.CombineRegionsCreateCube.track_addedmem_create_combined_cube(500) |
| | 127±3ms | 126±3ms | 0.99 | experimental.ugrid.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(50) |
| | 728±10ms | 725±7ms | 1.00 | experimental.ugrid.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(500) |
| | 87.6±2ms | 87.7±2ms | 1.00 | experimental.ugrid.regions_combine.CombineRegionsSaveData.time_save(50) |
| | 686±10ms | 681±6ms | 0.99 | experimental.ugrid.regions_combine.CombineRegionsSaveData.time_save(500) |
| | 2.1752849999999997 | 2.1752849999999997 | 1.00 | experimental.ugrid.regions_combine.CombineRegionsSaveData.track_filesize_saved(50) |
| | 216.01528499999998 | 216.01528499999998 | 1.00 | experimental.ugrid.regions_combine.CombineRegionsSaveData.track_filesize_saved(500) |
| | 568±10μs | 568±10μs | 1.00 | import_iris.Iris.time__concatenate |
| | 165±5μs | 163±7μs | 0.99 | import_iris.Iris.time__constraints |
| | 101±3μs | 101±2μs | 1.00 | import_iris.Iris.time__data_manager |
| | 85.0±0.7μs | 85.1±0.8μs | 1.00 | import_iris.Iris.time__deprecation |
| | 111±2μs | 109±2μs | 0.99 | import_iris.Iris.time__lazy_data |
| | 790±10μs | 781±20μs | 0.99 | import_iris.Iris.time__merge |
| | 71.9±0.6μs | 71.2±0.5μs | 0.99 | import_iris.Iris.time__representation |
| | 432±8μs | 442±20μs | 1.02 | import_iris.Iris.time_analysis |
| | 130±2μs | 129±4μs | 0.99 | import_iris.Iris.time_analysis__area_weighted |
| | 99.1±2μs | 99.7±0.4μs | 1.01 | import_iris.Iris.time_analysis__grid_angles |
| | 222±4μs | 216±4μs | 0.97 | import_iris.Iris.time_analysis__interpolation |
| | 176±4μs | 170±3μs | 0.96 | import_iris.Iris.time_analysis__regrid |
| | 102±2μs | 103±3μs | 1.00 | import_iris.Iris.time_analysis__scipy_interpolate |
| | 129±2μs | 126±1μs | 0.97 | import_iris.Iris.time_analysis_calculus |
| | 283±3μs | 283±5μs | 1.00 | import_iris.Iris.time_analysis_cartography |
| | 85.3±0.8μs | 83.4±0.9μs | 0.98 | import_iris.Iris.time_analysis_geomerty |
| | 203±4μs | 198±3μs | 0.97 | import_iris.Iris.time_analysis_maths |
| | 91.7±1μs | 90.5±0.7μs | 0.99 | import_iris.Iris.time_analysis_stats |
| | 169±3μs | 166±3μs | 0.99 | import_iris.Iris.time_analysis_trajectory |
| | 269±8μs | 268±6μs | 1.00 | import_iris.Iris.time_aux_factory |
| | 80.1±0.4μs | 79.9±1μs | 1.00 | import_iris.Iris.time_common |
| | 153±3μs | 154±3μs | 1.01 | import_iris.Iris.time_common_lenient |
| | 879±9μs | 885±10μs | 1.01 | import_iris.Iris.time_common_metadata |
| | 123±2μs | 123±4μs | 1.00 | import_iris.Iris.time_common_mixin |
| | 1.03±0.01ms | 1.04±0.03ms | 1.01 | import_iris.Iris.time_common_resolve |
| | 186±2μs | 183±2μs | 0.98 | import_iris.Iris.time_config |
| | 109±1μs | 107±0.8μs | 0.98 | import_iris.Iris.time_coord_categorisation |
| | 322±8μs | 318±10μs | 0.98 | import_iris.Iris.time_coord_systems |
| | 638±10μs | 631±10μs | 0.99 | import_iris.Iris.time_coords |
| | 592±20μs | 589±20μs | 0.99 | import_iris.Iris.time_cube |
| | 207±3μs | 204±5μs | 0.98 | import_iris.Iris.time_exceptions |
| | 72.2±0.5μs | 72.2±0.6μs | 1.00 | import_iris.Iris.time_experimental |
| | 192±2μs | 192±3μs | 1.00 | import_iris.Iris.time_fileformats |
| | 226±3μs | 224±4μs | 0.99 | import_iris.Iris.time_fileformats__ff |
| | 2.46±0.05ms | 2.40±0.06ms | 0.98 | import_iris.Iris.time_fileformats__ff_cross_references |
| | 74.0±0.6μs | 74.1±0.4μs | 1.00 | import_iris.Iris.time_fileformats__pp_lbproc_pairs |
| | 105±1μs | 106±1μs | 1.00 | import_iris.Iris.time_fileformats_abf |
| | 323±10μs | 318±10μs | 0.99 | import_iris.Iris.time_fileformats_cf |
| | 5.44±0.1ms | 5.66±0.2ms | 1.04 | import_iris.Iris.time_fileformats_dot |
| | 69.1±0.7μs | 68.4±0.7μs | 0.99 | import_iris.Iris.time_fileformats_name |
| | 235±3μs | 239±3μs | 1.01 | import_iris.Iris.time_fileformats_name_loaders |
| | 112±2μs | 111±1μs | 1.00 | import_iris.Iris.time_fileformats_netcdf |
| | 113±0.8μs | 112±1μs | 1.00 | import_iris.Iris.time_fileformats_nimrod |
| | 190±3μs | 188±3μs | 0.99 | import_iris.Iris.time_fileformats_nimrod_load_rules |
| | 683±10μs | 687±20μs | 1.01 | import_iris.Iris.time_fileformats_pp |
| | 157±0.6μs | 158±0.9μs | 1.00 | import_iris.Iris.time_fileformats_pp_load_rules |
| | 122±1μs | 121±1μs | 0.99 | import_iris.Iris.time_fileformats_pp_save_rules |
| | 445±2μs | 439±5μs | 0.99 | import_iris.Iris.time_fileformats_rules |
| | 194±3μs | 193±4μs | 0.99 | import_iris.Iris.time_fileformats_structured_array_identification |
| | 78.8±0.5μs | 78.6±0.5μs | 1.00 | import_iris.Iris.time_fileformats_um |
| | 151±2μs | 150±1μs | 0.99 | import_iris.Iris.time_fileformats_um__fast_load |
| | 131±2μs | 130±4μs | 0.99 | import_iris.Iris.time_fileformats_um__fast_load_structured_fields |
| | 71.8±0.5μs | 70.9±0.6μs | 0.99 | import_iris.Iris.time_fileformats_um__ff_replacement |
| | 77.8±0.6μs | 77.2±1μs | 0.99 | import_iris.Iris.time_fileformats_um__optimal_array_structuring |
| | 886±9μs | 877±3μs | 0.99 | import_iris.Iris.time_fileformats_um_cf_map |
| | 126±0.9μs | 127±1μs | 1.00 | import_iris.Iris.time_io |
| | 161±4μs | 157±4μs | 0.97 | import_iris.Iris.time_io_format_picker |
| | 201±2μs | 201±1μs | 1.00 | import_iris.Iris.time_iris |
| | 119±1μs | 119±2μs | 0.99 | import_iris.Iris.time_iterate |
| | 8.08±0.08ms | 8.05±0.1ms | 1.00 | import_iris.Iris.time_palette |
| | 299±3μs | 298±3μs | 1.00 | import_iris.Iris.time_plot |
| | 95.3±0.5μs | 93.6±1μs | 0.98 | import_iris.Iris.time_quickplot |
| | 1.96±0.03ms | 1.94±0.06ms | 0.99 | import_iris.Iris.time_std_names |
| | 1.71±0.02ms | 1.71±0.01ms | 1.00 | import_iris.Iris.time_symbols |
| | 111±2ms | 110±1ms | 0.99 | import_iris.Iris.time_tests |
| | 235±4μs | 231±3μs | 0.98 | import_iris.Iris.time_third_party_cartopy |
| | 4.88±0.1ms | 4.81±0.2ms | 0.99 | import_iris.Iris.time_third_party_cf_units |
| | 109±0.4μs | 109±0.7μs | 1.00 | import_iris.Iris.time_third_party_cftime |
| | 2.68±0.03ms | 2.73±0.1ms | 1.02 | import_iris.Iris.time_third_party_matplotlib |
| | 1.01±0.01ms | 1.02±0.01ms | 1.01 | import_iris.Iris.time_third_party_numpy |
| | 160±2μs | 159±2μs | 0.99 | import_iris.Iris.time_third_party_scipy |
| | 92.9±2μs | 92.1±1μs | 0.99 | import_iris.Iris.time_time |
| | 276±4μs | 284±4μs | 1.03 | import_iris.Iris.time_util |
| | 83.6±0.8μs | 83.2±0.6μs | 1.00 | iterate.IZip.time_izip |
| | 7.46±0.2ms | 7.35±0.1ms | 0.99 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'FF') |
| | 24.1±0.6ms | 22.7±0.7ms | 0.94 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'NetCDF') |
| | 8.09±0.2ms | 8.13±0.1ms | 1.00 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'PP') |
| | 7.37±0.09ms | 7.50±0.1ms | 1.02 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'FF') |
| | 20.9±0.6ms | 20.2±0.3ms | 0.96 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'NetCDF') |
| | 8.10±0.1ms | 8.08±0.09ms | 1.00 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'PP') |
| | 1.25±0.02s | 1.25±0.02s | 0.99 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'FF') |
| | 19.5±0.4ms | 19.4±0.4ms | 0.99 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'NetCDF') |
| | 1.39±0.02s | 1.39±0.02s | 1.00 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'PP') |
| | 1.24±0.02s | 1.23±0.01s | 0.99 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'FF') |
| | 19.6±0.6ms | 19.1±0.05ms | 0.97 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'NetCDF') |
| | 1.41±0.01s | 1.38±0.02s | 0.98 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'PP') |
| | 3.62±0.04ms | 3.59±0.1ms | 0.99 | load.LoadAndRealise.time_load((50, 50, 2), False, 'FF') |
| | 19.1±0.2ms | 18.7±0.3ms | 0.98 | load.LoadAndRealise.time_load((50, 50, 2), False, 'NetCDF') |
| | 3.88±0.05ms | 3.81±0.05ms | 0.98 | load.LoadAndRealise.time_load((50, 50, 2), False, 'PP') |
| | 3.67±0.09ms | 3.56±0.06ms | 0.97 | load.LoadAndRealise.time_load((50, 50, 2), True, 'FF') |
| | 19.4±0.5ms | 19.1±0.6ms | 0.98 | load.LoadAndRealise.time_load((50, 50, 2), True, 'NetCDF') |
| | 3.80±0.1ms | 3.82±0.05ms | 1.00 | load.LoadAndRealise.time_load((50, 50, 2), True, 'PP') |
| | 34.7±3ms | 31.2±2ms | 0.90 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'FF') |
| | 19.5±0.6ms | 19.7±0.4ms | 1.01 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'NetCDF') |
| | 13.7±1ms | 14.5±3ms | 1.06 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'PP') |
| | 25.4±0.8ms | 25.1±2ms | 0.99 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'FF') |
| | 72.1±1ms | 72.0±1ms | 1.00 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'NetCDF') |
| | 25.9±2ms | 25.2±0.4ms | 0.97 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'PP') |
| | 389±10ms | 376±2ms | 0.97 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'FF') |
| | 3.00±0.3ms | 2.77±0.08ms | 0.92 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'NetCDF') |
| | 395±10ms | 380±2ms | 0.96 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'PP') |
| | 399±10ms | 383±1ms | 0.96 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'FF') |
| | 3.05±0.3ms | 2.75±0.1ms | 0.90 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'NetCDF') |
| | 400±10ms | 388±1ms | 0.97 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'PP') |
| | 1.41±0.08ms | 1.40±0.06ms | 0.99 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'FF') |
| | 2.76±0.2ms | 2.73±0.1ms | 0.99 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'NetCDF') |
| | 1.38±0.1ms | 1.37±0.07ms | 0.99 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'PP') |
| | 1.43±0.1ms | 1.35±0.05ms | 0.94 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'FF') |
| | 3.06±0.3ms | 2.79±0.1ms | 0.91 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'NetCDF') |
| | 1.43±0.07ms | 1.36±0.05ms | 0.95 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'PP') |
| | 338±5ms | 338±3ms | 1.00 | load.ManyVars.time_many_var_load |
| | 7.68±0.2ms | 7.48±0.03ms | 0.97 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'FF') |
| | 8.57±0.3ms | 8.25±0.04ms | 0.96 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'PP') |
| | 1.27±0.01s | 1.25±0.01s | 0.99 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'FF') |
| | 1.44±0.02s | 1.41±0.01s | 0.98 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'PP') |
| | 3.69±0.1ms | 3.61±0.02ms | 0.98 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'FF') |
| | 3.97±0.1ms | 3.87±0.01ms | 0.97 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'PP') |
| | 7.58±0.2ms | 7.34±0.06ms | 0.97 | load.StructuredFF.time_structured_load((1280, 960, 5), False) |
| | 4.27±0.09ms | 4.12±0.02ms | 0.96 | load.StructuredFF.time_structured_load((1280, 960, 5), True) |
| | 1.25±0.02s | 1.22±0.01s | 0.98 | load.StructuredFF.time_structured_load((2, 2, 1000), False) |
| | 293±3ms | 286±2ms | 0.98 | load.StructuredFF.time_structured_load((2, 2, 1000), True) |
| | 3.69±0.05ms | 3.53±0.03ms | 0.96 | load.StructuredFF.time_structured_load((2, 2, 2), False) |
| | 3.32±0.1ms | 3.23±0.02ms | 0.97 | load.StructuredFF.time_structured_load((2, 2, 2), True) |
| | 132±2ms | 128±0.9ms | 0.97 | load.TimeConstraint.time_time_constraint(20, 'FF') |
| | 23.3±0.7ms | 22.0±0.1ms | 0.94 | load.TimeConstraint.time_time_constraint(20, 'NetCDF') |
| | 147±1ms | 143±2ms | 0.97 | load.TimeConstraint.time_time_constraint(20, 'PP') |
| | 26.7±1ms | 26.0±0.3ms | 0.97 | load.TimeConstraint.time_time_constraint(3, 'FF') |
| | 22.7±1ms | 21.7±0.1ms | 0.96 | load.TimeConstraint.time_time_constraint(3, 'NetCDF') |
| | 29.5±0.8ms | 28.0±0.1ms | 0.95 | load.TimeConstraint.time_time_constraint(3, 'PP') |
| | 16.7±0.9ms | 16.8±0.7ms | 1.00 | load.ugrid.BasicLoading.time_load_file(1) |
| | 36.1±0.9ms | 36.3±1ms | 1.01 | load.ugrid.BasicLoading.time_load_file(200000) |
| | 13.5±0.6ms | 13.4±0.5ms | 1.00 | load.ugrid.BasicLoading.time_load_mesh(1) |
| | 20.8±0.9ms | 20.5±0.9ms | 0.98 | load.ugrid.BasicLoading.time_load_mesh(200000) |
| | 16.9±0.7ms | 16.5±0.7ms | 0.98 | load.ugrid.BasicLoadingTime.time_load_file(1) |
| | 19.3±0.9ms | 19.0±0.9ms | 0.99 | load.ugrid.BasicLoadingTime.time_load_file(200000) |
| | 13.4±0.5ms | 13.2±0.5ms | 0.99 | load.ugrid.BasicLoadingTime.time_load_mesh(1) |
| | 16.1±0.7ms | 16.3±0.5ms | 1.01 | load.ugrid.BasicLoadingTime.time_load_mesh(200000) |
| | 17.7±0.6ms | 18.0±0.7ms | 1.02 | load.ugrid.Callback.time_load_file_callback(1) |
| | 43.9±1ms | 43.8±1ms | 1.00 | load.ugrid.Callback.time_load_file_callback(200000) |
| | 18.1±0.7ms | 17.8±1ms | 0.98 | load.ugrid.CallbackTime.time_load_file_callback(1) |
| | 21.0±0.9ms | 21.1±0.8ms | 1.01 | load.ugrid.CallbackTime.time_load_file_callback(200000) |
| | 2.65±0.3ms | 2.65±0.2ms | 1.00 | load.ugrid.DataRealisation.time_realise_data(10000) |
| | 5.38±0.2ms | 5.25±0.1ms | 0.98 | load.ugrid.DataRealisation.time_realise_data(200000) |
| | 38.9±3ms | 38.9±3ms | 1.00 | load.ugrid.DataRealisationTime.time_realise_data(10000) |
| | 802±10ms | 797±20ms | 0.99 | load.ugrid.DataRealisationTime.time_realise_data(200000) |
| | 103±0.4ns | 101±0.6ns | 0.98 | metadata_manager_factory.MetadataManagerFactory.time_AncillaryVariableMetadata_fields |
| | 919±40ns | 900±7ns | 0.98 | metadata_manager_factory.MetadataManagerFactory.time_AncillaryVariableMetadata_values |
| | 103±5ns | 101±0.5ns | 0.98 | metadata_manager_factory.MetadataManagerFactory.time_BaseMetadata_fields |
| | 890±9ns | 897±10ns | 1.01 | metadata_manager_factory.MetadataManagerFactory.time_BaseMetadata_values |
| | 102±1ns | 101±7ns | 0.99 | metadata_manager_factory.MetadataManagerFactory.time_CellMeasuresMetadata_fields |
| | 1.00±0.01μs | 1.01±0.01μs | 1.01 | metadata_manager_factory.MetadataManagerFactory.time_CellMeasuresMetadata_values |
| | 103±2ns | 101±1ns | 0.98 | metadata_manager_factory.MetadataManagerFactory.time_CoordMetadata_fields |
| | 1.09±0.02μs | 1.06±0.02μs | 0.98 | metadata_manager_factory.MetadataManagerFactory.time_CoordMetadata_values |
| | 102±0.9ns | 101±0.5ns | 0.99 | metadata_manager_factory.MetadataManagerFactory.time_CubeMetadata_fields |
| | 1.02±0.02μs | 1.00±0.01μs | 0.99 | metadata_manager_factory.MetadataManagerFactory.time_CubeMetadata_values |
| | 103±5ns | 101±0.6ns | 0.98 | metadata_manager_factory.MetadataManagerFactory.time_DimCoordMetadata_fields |
| | 1.15±0.03μs | 1.14±0.01μs | 0.99 | metadata_manager_factory.MetadataManagerFactory.time_DimCoordMetadata_values |
| | 1.02±0.01μs | 1.02±0.01μs | 1.00 | metadata_manager_factory.MetadataManagerFactory__create.time_AncillaryVariableMetadata(1) |
| | 6.87±0.1μs | 6.76±0.05μs | 0.98 | metadata_manager_factory.MetadataManagerFactory__create.time_AncillaryVariableMetadata(10) |
| | 64.0±0.6μs | 62.9±1μs | 0.98 | metadata_manager_factory.MetadataManagerFactory__create.time_AncillaryVariableMetadata(100) |
| | 1.02±0.01μs | 1.02±0.01μs | 1.00 | metadata_manager_factory.MetadataManagerFactory__create.time_BaseMetadata(1) |
| | 6.82±0.05μs | 6.71±0.07μs | 0.98 | metadata_manager_factory.MetadataManagerFactory__create.time_BaseMetadata(10) |
| | 63.7±0.5μs | 62.6±0.4μs | 0.98 | metadata_manager_factory.MetadataManagerFactory__create.time_BaseMetadata(100) |
| | 1.07±0.01μs | 1.08±0.01μs | 1.00 | metadata_manager_factory.MetadataManagerFactory__create.time_CellMeasureMetadata(1) |
| | 7.25±0.1μs | 7.26±0.06μs | 1.00 | metadata_manager_factory.MetadataManagerFactory__create.time_CellMeasureMetadata(10) |
| | 68.9±0.7μs | 68.4±1μs | 0.99 | metadata_manager_factory.MetadataManagerFactory__create.time_CellMeasureMetadata(100) |
| | 1.13±0.02μs | 1.12±0.02μs | 1.00 | metadata_manager_factory.MetadataManagerFactory__create.time_CoordMetadata(1) |
| | 7.77±0.08μs | 7.58±0.1μs | 0.98 | metadata_manager_factory.MetadataManagerFactory__create.time_CoordMetadata(10) |
| | 73.5±0.7μs | 72.2±2μs | 0.98 | metadata_manager_factory.MetadataManagerFactory__create.time_CoordMetadata(100) |
| | 1.07±0.01μs | 1.06±0.01μs | 0.99 | metadata_manager_factory.MetadataManagerFactory__create.time_CubeMetadata(1) |
| | 7.37±0.08μs | 7.16±0.06μs | 0.97 | metadata_manager_factory.MetadataManagerFactory__create.time_CubeMetadata(10) |
| | 69.0±0.7μs | 67.0±0.3μs | 0.97 | metadata_manager_factory.MetadataManagerFactory__create.time_CubeMetadata(100) |
| | 1.16±0.02μs | 1.14±0.01μs | 0.99 | metadata_manager_factory.MetadataManagerFactory__create.time_DimCoordMetadata(1) |
| | 8.24±0.2μs | 7.99±0.1μs | 0.97 | metadata_manager_factory.MetadataManagerFactory__create.time_DimCoordMetadata(10) |
| | 77.0±1μs | 75.8±1μs | 0.98 | metadata_manager_factory.MetadataManagerFactory__create.time_DimCoordMetadata(100) |
| | 107±1ns | 109±2ns | 1.01 | mixin.CFVariableMixin.time_get_attributes |
| | 107±4ns | 108±1ns | 1.01 | mixin.CFVariableMixin.time_get_long_name |
| | 959±10ns | 953±8ns | 0.99 | mixin.CFVariableMixin.time_get_metadata |
| | 108±2ns | 107±0.9ns | 1.00 | mixin.CFVariableMixin.time_get_standard_name |
| | 109±7ns | 109±1ns | 1.00 | mixin.CFVariableMixin.time_get_units |
| | 107±0.9ns | 108±3ns | 1.01 | mixin.CFVariableMixin.time_get_var_name |
| | 684±20ns | 677±7ns | 0.99 | mixin.CFVariableMixin.time_set_attributes |
| | 113±1ns | 114±3ns | 1.01 | mixin.CFVariableMixin.time_set_long_name |
| | 3.51±0.04μs | 3.48±0.01μs | 0.99 | mixin.CFVariableMixin.time_set_metadata__dict |
| | 4.46±0.04μs | 4.42±0.02μs | 0.99 | mixin.CFVariableMixin.time_set_metadata__metadata |
| | 4.32±0.05μs | 4.33±0.02μs | 1.00 | mixin.CFVariableMixin.time_set_metadata__tuple |
| | 558±10ns | 566±7ns | 1.01 | mixin.CFVariableMixin.time_set_standard_name |
| | 422±3ns | 423±7ns | 1.00 | mixin.CFVariableMixin.time_set_units |
| | 439±5ns | 448±3ns | 1.02 | mixin.CFVariableMixin.time_set_var_name |
| | 368±4ms | 367±3ms | 1.00 | plot.AuxSort.time_aux_sort |
| | 78.9±5ms | 77.6±2ms | 0.98 | regridding.CurvilinearRegridding.time_regrid_pic |
| | 94.0±0.9ms | 96.6±1ms | 1.03 | regridding.HorizontalChunkedRegridding.time_regrid_area_w |
| | 49.2±3ms | 49.2±2ms | 1.00 | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid |
| | 5.0 | 5.0 | 1.00 | regridding.HorizontalChunkedRegridding.track_addedmem_full_regrid |
| | 3.85±0.1ms | 3.74±0.2ms | 0.97 | save.NetcdfSave.time_netcdf_save_cube(50, False) |
| | 87.5±3ms | 87.8±2ms | 1.00 | save.NetcdfSave.time_netcdf_save_cube(50, True) |
| | 54.0±1ms | 54.0±1ms | 1.00 | save.NetcdfSave.time_netcdf_save_cube(600, False) |
| | 586±10ms | 579±10ms | 0.99 | save.NetcdfSave.time_netcdf_save_cube(600, True) |
| | 103±0.3ns | 103±1ns | 1.00 | save.NetcdfSave.time_netcdf_save_mesh(50, False) |
| | 72.7±1ms | 72.9±2ms | 1.00 | save.NetcdfSave.time_netcdf_save_mesh(50, True) |
| | 103±0.4ns | 104±2ns | 1.01 | save.NetcdfSave.time_netcdf_save_mesh(600, False) |
| | 515±8ms | 512±3ms | 0.99 | save.NetcdfSave.time_netcdf_save_mesh(600, True) |
| | 36.8±2ms | 35.9±0.6ms | 0.98 | stats.PearsonR.time_lazy |
| | 19.0±0.6ms | 18.9±0.5ms | 1.00 | stats.PearsonR.time_real |
| | 24.2±1ms | 23.5±2ms | 0.97 | trajectory.TrajectoryInterpolation.time_trajectory_linear |
| | 59.7±0.9ms | 59.8±0.7ms | 1.00 | trajectory.TrajectoryInterpolation.time_trajectory_nearest |
Generated by GHA run 8020581507
While I doubt it actually helps here, it's interesting to note that this problem may have similarities to https://github.com/SciTools/iris/issues/5753
What's similar is the way the operations are presented to Dask as a combination of tasks : In this case, the operation uses a partial function which fixes a temporary numpy array argument. In the netcdf-save case, a Dask.delayed is created which references a delayed store and an array calculation on the same data. But the delayed function has obvious similarities to a partial function operation.
However, in that case, it seems more like dask is unnecessarily assembling a complete array in memory when both operations are entirely chunk-able with the same chunks.
What makes me think that the save problem is not quite the same problem as here, is that in that case the memory use is recovered at the end of the operation.
Which I think is not the case here @stephenworsley ?
@pp-mo Yes, that sounds like a slightly different issue. In the case of regridding, it doesn't seem like there is any problem with the data that is being realised by dask, the problem is with the data that lives in the partial function already realised and which isn't being thrown away when we would expect it to.
[no problem with] data that is being realised by dask, the problem is with the data that lives in the partial function already realised
Yes, that's a telling way of looking at it. Those really are quite different things. I'd say that broadly Dask is responsible for both, but in this case it actually feels like some kind of bug, whereas the other feels like a problem with its scheduling strategies.
@bouweandela suggests a possible future implementation that could be more efficient: making the weights array always a Dask array, then compute() only when needed, to avoid any memory footprint and make it easy to share information between processes/nodes/etcetera.