Skip to content

Conversation

@trexfeathers
Copy link
Contributor

@trexfeathers trexfeathers commented Nov 25, 2025

πŸš€ Pull Request

Description

Scientific Python - SPEC 0 β€” Minimum Supported Dependencies

Closes #6775

Slight hiccup:

  • We aim to provide Python 3.14 compatibility in an Iris 3.14.1 patch release. See 🦌 Iris 3.14.xΒ #6626 (comment)
  • It would be inappropriate to change the our supported versions in a patch release

So here are my proposed steps:

  • Put up this draft pull request, which includes Python 3.14 test coverage, thus demonstrating that 719320c successfully provides Python 3.14 compatibility.
  • Apply 719320c to the v3.14.x release branch, which will give the 3.14.1 release compatibility with Python 3.14.
  • Do a merge-back from v3.14.x to main; this needn't wait for the release itself.
  • Rebase this pull request onto the latest main.
  • If there has been a delay: re-resolve the lock-files in this PR.
  • What's New entry.
  • Take this PR out of draft.
  • Raise a separate issue documenting any changes that need to be "undone" from this PR when pyvista is 3.14 compatible. (see Reinstate geovista in py314 lockfile when pyvista is py314 compatible.Β #6902)

The above pattern will avoid Git conflicts and maintain maximum integrity in our Git history, avoiding situations where a change has two different SHAs depending on which branch it is on.

Terminology

  • Compatibility: works with Python 3.14
  • Support: is tested against Python 3.14

Consult Iris pull request check list


Add any of the below labels to trigger actions on this PR:

  • benchmark_this Request that this pull request be benchmarked to check if it introduces performance shifts

@github-actions github-actions bot added the benchmark_this Request that this pull request be benchmarked to check if it introduces performance shifts label Nov 25, 2025
scitools-ci[bot]
scitools-ci bot previously requested changes Nov 25, 2025
Copy link
Contributor

@scitools-ci scitools-ci bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@trexfeathers
Copy link
Contributor Author

trexfeathers commented Nov 25, 2025

The failures appear to come from Python 3.14 incompatibilities in dependencies:

These prevent all of Iris' CI running correctly. However the vast majority of tests have run, and have passed, including many tests which exercise DimCoord.__deepcopy__() - the original problem.

I believe we are therefore able to provide Python 3.14 compatibility, although we're not yet able to provide support due to these CI problems preventing full coverage.

@trexfeathers
Copy link
Contributor Author

  • Mule, which is not an explicit dependency but supports benchmark data generation

#6856

@trexfeathers
Copy link
Contributor Author

With what we know about VTK+PyVista and new versions of Python: we should be considering separating the iris.experimental.geovista tests into separate CI, so that the rest of our tests can start running Python 3.14.

@HGWright HGWright moved this from Backlog to Ready in Iris v3.15 Jan 13, 2026
@trexfeathers trexfeathers moved this from Ready to In progress in Iris v3.15 Jan 14, 2026
@codecov
Copy link

codecov bot commented Jan 14, 2026

Codecov Report

βœ… All modified and coverable lines are covered by tests.
βœ… Project coverage is 90.18%. Comparing base (4141484) to head (ef0f7e3).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #6816      +/-   ##
==========================================
- Coverage   90.43%   90.18%   -0.26%     
==========================================
  Files          91       91              
  Lines       24839    24822      -17     
  Branches     4656     4656              
==========================================
- Hits        22463    22385      -78     
- Misses       1608     1669      +61     
  Partials      768      768              

β˜” View full report in Codecov by Sentry.
πŸ“’ Have feedback on the report? Share it here.

πŸš€ New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link
Contributor

⏱️ Performance Benchmark Report: 242ca87

Performance shifts
| Change   | Before [41414842]    | After [242ca87b]    |   Ratio | Benchmark (Parameter)               |
|----------|----------------------|---------------------|---------|-------------------------------------|
| +        | 186Β±4ΞΌs              | 224Β±3ΞΌs             |    1.21 | import_iris.Iris.time__constraints  |
| +        | 319Β±9ΞΌs              | 392Β±10ΞΌs            |    1.23 | import_iris.Iris.time_aux_factory   |
| +        | 168Β±7ΞΌs              | 203Β±5ΞΌs             |    1.21 | import_iris.Iris.time_common_mixin  |
| +        | 378Β±30ΞΌs             | 470Β±3ΞΌs             |    1.24 | import_iris.Iris.time_coord_systems |
| +        | 715Β±50ΞΌs             | 934Β±10ΞΌs            |    1.31 | import_iris.Iris.time_cube          |
| +        | 77.0Β±2ΞΌs             | 93.0Β±0.6ΞΌs          |    1.21 | iterate.IZip.time_izip              |
Full benchmark results

Benchmarks that have stayed the same:

| Change   | Before [41414842]    | After [242ca87b]    | Ratio   | Benchmark (Parameter)                                                                       |
|----------|----------------------|---------------------|---------|---------------------------------------------------------------------------------------------|
|          | 20.2Β±0.3ms           | 20.2Β±0.6ms          | 1.00    | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(False)                              |
|          | 54.2Β±1ms             | 55.1Β±2ms            | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(True)                               |
|          | 34.1Β±0.3ms           | 35.2Β±0.6ms          | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(False)                    |
|          | 193Β±5ms              | 199Β±5ms             | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(True)                     |
|          | 22.3Β±0.3ms           | 22.5Β±0.5ms          | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(False)                              |
|          | 33.6Β±0.4ms           | 34.6Β±0.5ms          | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(True)                               |
|          | 22.5Β±0.2ms           | 22.8Β±0.7ms          | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(False)                              |
|          | 33.3Β±0.7ms           | 34.6Β±1ms            | 1.04    | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(True)                               |
|          | 20.3Β±0.2ms           | 20.2Β±0.4ms          | 0.99    | aggregate_collapse.Aggregation.time_aggregated_by_MAX(False)                                |
|          | 46.2Β±1ms             | 48.2Β±1ms            | 1.04    | aggregate_collapse.Aggregation.time_aggregated_by_MAX(True)                                 |
|          | 128Β±1ms              | 133Β±6ms             | 1.04    | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(False)                            |
|          | 131Β±1ms              | 136Β±2ms             | 1.04    | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(True)                             |
|          | 21.3Β±0.3ms           | 21.5Β±0.3ms          | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(False)                               |
|          | 49.5Β±0.8ms           | 50.9Β±1ms            | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(True)                                |
|          | 22.6Β±0.3ms           | 22.7Β±0.7ms          | 1.00    | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(False)                             |
|          | 59.2Β±0.7ms           | 59.2Β±2ms            | 1.00    | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(True)                              |
|          | 20.4Β±0.3ms           | 20.1Β±0.4ms          | 0.99    | aggregate_collapse.Aggregation.time_aggregated_by_MIN(False)                                |
|          | 47.0Β±1ms             | 46.4Β±1ms            | 0.99    | aggregate_collapse.Aggregation.time_aggregated_by_MIN(True)                                 |
|          | 1.05Β±0.01s           | 1.08Β±0.01s          | 1.02    | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(False)                               |
|          | 1.04Β±0.01s           | 1.08Β±0.01s          | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(True)                                |
|          | 208Β±2ms              | 218Β±4ms             | 1.05    | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(False)                         |
|          | 377Β±10ms             | 379Β±10ms            | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(True)                          |
|          | 21.3Β±0.4ms           | 21.0Β±0.3ms          | 0.99    | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(False)                         |
|          | 32.1Β±0.6ms           | 32.9Β±0.9ms          | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(True)                          |
|          | 21.5Β±0.3ms           | 21.7Β±0.1ms          | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_RMS(False)                                |
|          | 59.4Β±1ms             | 59.9Β±2ms            | 1.01    | aggregate_collapse.Aggregation.time_aggregated_by_RMS(True)                                 |
|          | 22.1Β±0.3ms           | 22.2Β±0.5ms          | 1.00    | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(False)                            |
|          | 62.8Β±1ms             | 62.8Β±2ms            | 1.00    | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(True)                             |
|          | 22.0Β±0.5ms           | 22.1Β±0.6ms          | 1.00    | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(False)                           |
|          | 58.6Β±0.9ms           | 60.4Β±0.7ms          | 1.03    | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(True)                            |
|          | 7.76Β±0.09ms          | 7.78Β±0.2ms          | 1.00    | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(False)                               |
|          | 24.4Β±0.2ms           | 24.7Β±0.5ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(True)                                |
|          | 19.7Β±0.2ms           | 19.9Β±0.4ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(False)                     |
|          | 149Β±2ms              | 154Β±9ms             | 1.03    | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(True)                      |
|          | 8.23Β±0.1ms           | 8.27Β±0.3ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(False)                               |
|          | 22.7Β±0.3ms           | 22.8Β±1ms            | 1.00    | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(True)                                |
|          | 8.12Β±0.07ms          | 8.09Β±0.3ms          | 1.00    | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(False)                               |
|          | 22.3Β±0.4ms           | 23.2Β±0.6ms          | 1.04    | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(True)                                |
|          | 7.63Β±0.1ms           | 7.86Β±0.2ms          | 1.03    | aggregate_collapse.Aggregation.time_collapsed_by_MAX(False)                                 |
|          | 22.3Β±0.4ms           | 23.0Β±0.8ms          | 1.03    | aggregate_collapse.Aggregation.time_collapsed_by_MAX(True)                                  |
|          | 24.7Β±0.3ms           | 24.4Β±0.6ms          | 0.99    | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(False)                             |
|          | 37.3Β±0.5ms           | 37.7Β±1ms            | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(True)                              |
|          | 7.97Β±0.08ms          | 8.08Β±0.1ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(False)                                |
|          | 22.6Β±0.4ms           | 23.7Β±0.6ms          | 1.05    | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(True)                                 |
|          | 8.94Β±0.08ms          | 9.01Β±0.1ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(False)                              |
|          | 25.0Β±0.2ms           | 26.0Β±0.5ms          | 1.04    | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(True)                               |
|          | 7.69Β±0.07ms          | 7.85Β±0.1ms          | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_MIN(False)                                 |
|          | 22.3Β±0.5ms           | 23.3Β±0.4ms          | 1.05    | aggregate_collapse.Aggregation.time_collapsed_by_MIN(True)                                  |
|          | 523Β±2ms              | 527Β±3ms             | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(False)                                |
|          | 535Β±4ms              | 539Β±3ms             | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(True)                                 |
|          | 44.3Β±0.3ms           | 46.2Β±0.7ms          | 1.04    | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(False)                          |
|          | 164Β±2ms              | 171Β±7ms             | 1.04    | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(True)                           |
|          | 8.00Β±0.08ms          | 8.22Β±0.3ms          | 1.03    | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(False)                          |
|          | 22.6Β±0.2ms           | 22.9Β±0.6ms          | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(True)                           |
|          | 8.07Β±0.1ms           | 8.06Β±0.2ms          | 1.00    | aggregate_collapse.Aggregation.time_collapsed_by_RMS(False)                                 |
|          | 24.8Β±0.5ms           | 25.5Β±0.5ms          | 1.03    | aggregate_collapse.Aggregation.time_collapsed_by_RMS(True)                                  |
|          | 8.07Β±0.2ms           | 8.40Β±0.2ms          | 1.04    | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(False)                             |
|          | 25.0Β±0.6ms           | 25.3Β±0.6ms          | 1.01    | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(True)                              |
|          | 8.17Β±0.2ms           | 8.32Β±0.2ms          | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(False)                            |
|          | 24.4Β±0.6ms           | 24.8Β±0.6ms          | 1.02    | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(True)                             |
|          | 21.8Β±0.6ms           | 21.9Β±1ms            | 1.01    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(False)                     |
|          | 86.4Β±2ms             | 85.2Β±2ms            | 0.99    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(True)                      |
|          | 21.9Β±0.4ms           | 21.9Β±0.5ms          | 1.00    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(False)                      |
|          | 95.5Β±1ms             | 96.4Β±1ms            | 1.01    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(True)                       |
|          | 20.8Β±0.3ms           | 20.7Β±0.7ms          | 1.00    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(False)                      |
|          | 56.4Β±2ms             | 56.1Β±1ms            | 1.00    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(True)                       |
|          | 8.22Β±0.1ms           | 8.28Β±0.2ms          | 1.01    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(False)                      |
|          | 29.9Β±1ms             | 30.0Β±0.9ms          | 1.00    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(True)                       |
|          | 8.08Β±0.2ms           | 8.40Β±0.2ms          | 1.04    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(False)                       |
|          | 30.6Β±0.9ms           | 31.4Β±0.6ms          | 1.03    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(True)                        |
|          | 7.93Β±0.09ms          | 7.92Β±0.2ms          | 1.00    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(False)                       |
|          | 25.2Β±0.4ms           | 25.3Β±0.8ms          | 1.01    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(True)                        |
|          | 218Β±2ms              | 225Β±3ms             | 1.03    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(False)               |
|          | 310Β±5ms              | 317Β±10ms            | 1.02    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(True)                |
|          | 1.10Β±0.01ms          | 1.13Β±0.03ms         | 1.03    | cube.CubeCreation.time_create(False, 'construct')                                           |
|          | 380Β±5ΞΌs              | 396Β±4ΞΌs             | 1.04    | cube.CubeCreation.time_create(False, 'instantiate')                                         |
|          | 1.92Β±0.02ms          | 2.00Β±0.04ms         | 1.04    | cube.CubeCreation.time_create(True, 'construct')                                            |
|          | 1.34Β±0.03ms          | 1.45Β±0.02ms         | 1.08    | cube.CubeCreation.time_create(True, 'instantiate')                                          |
|          | 87.5Β±3ms             | 87.4Β±2ms            | 1.00    | cube.CubeEquality.time_equality(False, False, 'all_equal')                                  |
|          | 25.1Β±0.5ms           | 24.6Β±0.8ms          | 0.98    | cube.CubeEquality.time_equality(False, False, 'coord_inequality')                           |
|          | 101Β±2ms              | 100Β±3ms             | 1.00    | cube.CubeEquality.time_equality(False, False, 'data_inequality')                            |
|          | 16.3Β±0.3ΞΌs           | 17.0Β±0.3ΞΌs          | 1.04    | cube.CubeEquality.time_equality(False, False, 'metadata_inequality')                        |
|          | 92.3Β±3ms             | 91.0Β±3ms            | 0.99    | cube.CubeEquality.time_equality(False, True, 'all_equal')                                   |
|          | 28.8Β±1ms             | 28.3Β±1ms            | 0.98    | cube.CubeEquality.time_equality(False, True, 'coord_inequality')                            |
|          | 105Β±1ms              | 104Β±5ms             | 0.99    | cube.CubeEquality.time_equality(False, True, 'data_inequality')                             |
|          | 16.4Β±0.2ΞΌs           | 16.7Β±0.3ΞΌs          | 1.02    | cube.CubeEquality.time_equality(False, True, 'metadata_inequality')                         |
|          | 201Β±5ms              | 193Β±10ms            | 0.96    | cube.CubeEquality.time_equality(True, False, 'all_equal')                                   |
|          | 83.8Β±3ms             | 83.0Β±4ms            | 0.99    | cube.CubeEquality.time_equality(True, False, 'coord_inequality')                            |
|          | 230Β±6ms              | 229Β±10ms            | 1.00    | cube.CubeEquality.time_equality(True, False, 'data_inequality')                             |
|          | 50.2Β±0.7ΞΌs           | 53.8Β±0.9ΞΌs          | 1.07    | cube.CubeEquality.time_equality(True, False, 'metadata_inequality')                         |
|          | 304Β±5ms              | 298Β±10ms            | 0.98    | cube.CubeEquality.time_equality(True, True, 'all_equal')                                    |
|          | 185Β±3ms              | 179Β±7ms             | 0.97    | cube.CubeEquality.time_equality(True, True, 'coord_inequality')                             |
|          | 334Β±10ms             | 341Β±10ms            | 1.02    | cube.CubeEquality.time_equality(True, True, 'data_inequality')                              |
|          | 356Β±6ΞΌs              | 370Β±6ΞΌs             | 1.04    | cube.CubeEquality.time_equality(True, True, 'metadata_inequality')                          |
|          | 803Β±30ΞΌs             | 953Β±30ΞΌs            | 1.19    | import_iris.Iris.time__concatenate                                                          |
|          | 120Β±5ΞΌs              | 134Β±1ΞΌs             | 1.12    | import_iris.Iris.time__data_manager                                                         |
|          | 91.5Β±0.7ΞΌs           | 98.4Β±1ΞΌs            | 1.08    | import_iris.Iris.time__deprecation                                                          |
|          | 164Β±6ΞΌs              | 170Β±3ΞΌs             | 1.04    | import_iris.Iris.time__lazy_data                                                            |
|          | 904Β±40ΞΌs             | 1.07Β±0.02ms         | 1.19    | import_iris.Iris.time__merge                                                                |
|          | 73.1Β±0.5ΞΌs           | 72.5Β±0.5ΞΌs          | 0.99    | import_iris.Iris.time__representation                                                       |
|          | 600Β±10ΞΌs             | 706Β±10ΞΌs            | 1.18    | import_iris.Iris.time_analysis                                                              |
|          | 141Β±3ΞΌs              | 148Β±3ΞΌs             | 1.04    | import_iris.Iris.time_analysis__area_weighted                                               |
|          | 106Β±2ΞΌs              | 105Β±2ΞΌs             | 0.99    | import_iris.Iris.time_analysis__grid_angles                                                 |
|          | 246Β±6ΞΌs              | 286Β±7ΞΌs             | 1.16    | import_iris.Iris.time_analysis__interpolation                                               |
|          | 191Β±6ΞΌs              | 214Β±3ΞΌs             | 1.12    | import_iris.Iris.time_analysis__regrid                                                      |
|          | 110Β±2ΞΌs              | 124Β±1ΞΌs             | 1.13    | import_iris.Iris.time_analysis__scipy_interpolate                                           |
|          | 136Β±1ΞΌs              | 134Β±2ΞΌs             | 0.98    | import_iris.Iris.time_analysis_calculus                                                     |
|          | 321Β±10ΞΌs             | 348Β±7ΞΌs             | 1.08    | import_iris.Iris.time_analysis_cartography                                                  |
|          | 90.8Β±0.4ΞΌs           | 90.5Β±3ΞΌs            | 1.00    | import_iris.Iris.time_analysis_geomerty                                                     |
|          | 208Β±3ΞΌs              | 229Β±5ΞΌs             | 1.10    | import_iris.Iris.time_analysis_maths                                                        |
|          | 94.0Β±2ΞΌs             | 93.6Β±1ΞΌs            | 1.00    | import_iris.Iris.time_analysis_stats                                                        |
|          | 170Β±5ΞΌs              | 191Β±7ΞΌs             | 1.12    | import_iris.Iris.time_analysis_trajectory                                                   |
|          | 81.1Β±2ΞΌs             | 80.3Β±1ΞΌs            | 0.99    | import_iris.Iris.time_common                                                                |
|          | 159Β±3ΞΌs              | 185Β±5ΞΌs             | 1.16    | import_iris.Iris.time_common_lenient                                                        |
|          | 1.34Β±0.03ms          | 1.54Β±0.04ms         | 1.15    | import_iris.Iris.time_common_metadata                                                       |
|          | 1.15Β±0.05ms          | 1.29Β±0.02ms         | 1.12    | import_iris.Iris.time_common_resolve                                                        |
|          | 201Β±5ΞΌs              | 223Β±4ΞΌs             | 1.11    | import_iris.Iris.time_config                                                                |
|          | 127Β±2ΞΌs              | 135Β±2ΞΌs             | 1.06    | import_iris.Iris.time_coord_categorisation                                                  |
|          | 762Β±40ΞΌs             | 904Β±10ΞΌs            | 1.19    | import_iris.Iris.time_coords                                                                |
|          | 260Β±5ΞΌs              | 281Β±1ΞΌs             | 1.08    | import_iris.Iris.time_exceptions                                                            |
|          | 73.9Β±0.6ΞΌs           | 73.1Β±0.4ΞΌs          | 0.99    | import_iris.Iris.time_experimental                                                          |
|          | 176Β±2ΞΌs              | 178Β±0.7ΞΌs           | 1.01    | import_iris.Iris.time_fileformats                                                           |
|          | 254Β±7ΞΌs              | 296Β±10ΞΌs            | 1.17    | import_iris.Iris.time_fileformats__ff                                                       |
|          | 2.60Β±0.05ms          | 2.61Β±0.2ms          | 1.01    | import_iris.Iris.time_fileformats__ff_cross_references                                      |
|          | 76.3Β±0.2ΞΌs           | 74.3Β±0.5ΞΌs          | 0.97    | import_iris.Iris.time_fileformats__pp_lbproc_pairs                                          |
|          | 115Β±3ΞΌs              | 122Β±5ΞΌs             | 1.06    | import_iris.Iris.time_fileformats_abf                                                       |
|          | 455Β±10ΞΌs             | 533Β±7ΞΌs             | 1.17    | import_iris.Iris.time_fileformats_cf                                                        |
|          | 5.08Β±0.2ms           | 4.71Β±0.09ms         | 0.93    | import_iris.Iris.time_fileformats_dot                                                       |
|          | 71.4Β±0.9ΞΌs           | 69.3Β±0.4ΞΌs          | 0.97    | import_iris.Iris.time_fileformats_name                                                      |
|          | 255Β±3ΞΌs              | 263Β±4ΞΌs             | 1.03    | import_iris.Iris.time_fileformats_name_loaders                                              |
|          | 114Β±1ΞΌs              | 114Β±1ΞΌs             | 1.01    | import_iris.Iris.time_fileformats_netcdf                                                    |
|          | 122Β±4ΞΌs              | 129Β±0.7ΞΌs           | 1.06    | import_iris.Iris.time_fileformats_nimrod                                                    |
|          | 205Β±4ΞΌs              | 208Β±2ΞΌs             | 1.01    | import_iris.Iris.time_fileformats_nimrod_load_rules                                         |
|          | 784Β±30ΞΌs             | 890Β±9ΞΌs             | 1.14    | import_iris.Iris.time_fileformats_pp                                                        |
|          | 178Β±8ΞΌs              | 174Β±1ΞΌs             | 0.98    | import_iris.Iris.time_fileformats_pp_load_rules                                             |
|          | 139Β±3ΞΌs              | 135Β±2ΞΌs             | 0.97    | import_iris.Iris.time_fileformats_pp_save_rules                                             |
|          | 538Β±8ΞΌs              | 606Β±4ΞΌs             | 1.13    | import_iris.Iris.time_fileformats_rules                                                     |
|          | 221Β±3ΞΌs              | 251Β±3ΞΌs             | 1.13    | import_iris.Iris.time_fileformats_structured_array_identification                           |
|          | 80.6Β±2ΞΌs             | 78.9Β±0.5ΞΌs          | 0.98    | import_iris.Iris.time_fileformats_um                                                        |
|          | 157Β±4ΞΌs              | 167Β±4ΞΌs             | 1.07    | import_iris.Iris.time_fileformats_um__fast_load                                             |
|          | 137Β±7ΞΌs              | 155Β±2ΞΌs             | 1.13    | import_iris.Iris.time_fileformats_um__fast_load_structured_fields                           |
|          | 72.8Β±0.4ΞΌs           | 71.3Β±0.6ΞΌs          | 0.98    | import_iris.Iris.time_fileformats_um__ff_replacement                                        |
|          | 79.1Β±0.7ΞΌs           | 76.7Β±0.5ΞΌs          | 0.97    | import_iris.Iris.time_fileformats_um__optimal_array_structuring                             |
|          | 966Β±10ΞΌs             | 971Β±10ΞΌs            | 1.01    | import_iris.Iris.time_fileformats_um_cf_map                                                 |
|          | 138Β±1ΞΌs              | 141Β±2ΞΌs             | 1.02    | import_iris.Iris.time_io                                                                    |
|          | 175Β±8ΞΌs              | 210Β±3ΞΌs             | 1.20    | import_iris.Iris.time_io_format_picker                                                      |
|          | 209Β±3ΞΌs              | 216Β±1ΞΌs             | 1.04    | import_iris.Iris.time_iris                                                                  |
|          | 126Β±3ΞΌs              | 137Β±1ΞΌs             | 1.09    | import_iris.Iris.time_iterate                                                               |
|          | 8.09Β±0.1ms           | 8.14Β±0.05ms         | 1.01    | import_iris.Iris.time_palette                                                               |
|          | 1.77Β±0.1ms           | 1.79Β±0.01ms         | 1.01    | import_iris.Iris.time_plot                                                                  |
|          | 218Β±5ΞΌs              | 225Β±2ΞΌs             | 1.03    | import_iris.Iris.time_quickplot                                                             |
|          | 2.25Β±0.3ms           | 2.14Β±0.03ms         | 0.95    | import_iris.Iris.time_std_names                                                             |
|          | 1.79Β±0.01ms          | 1.83Β±0.01ms         | 1.02    | import_iris.Iris.time_symbols                                                               |
|          | 43.8Β±2ms             | 47.7Β±80ms           | 1.09    | import_iris.Iris.time_tests                                                                 |
|          | 251Β±2ΞΌs              | 236Β±1ΞΌs             | 0.94    | import_iris.Iris.time_third_party_cartopy                                                   |
|          | 5.14Β±0.04ms          | 5.06Β±0.03ms         | 0.99    | import_iris.Iris.time_third_party_cf_units                                                  |
|          | 120Β±0.5ΞΌs            | 120Β±2ΞΌs             | 1.00    | import_iris.Iris.time_third_party_cftime                                                    |
|          | 2.64Β±0.08ms          | 2.72Β±0.02ms         | 1.03    | import_iris.Iris.time_third_party_matplotlib                                                |
|          | 550Β±6ΞΌs              | 555Β±5ΞΌs             | 1.01    | import_iris.Iris.time_third_party_numpy                                                     |
|          | 166Β±5ΞΌs              | 170Β±0.6ΞΌs           | 1.02    | import_iris.Iris.time_third_party_scipy                                                     |
|          | 96.8Β±2ΞΌs             | 112Β±1ΞΌs             | 1.16    | import_iris.Iris.time_time                                                                  |
|          | 852Β±8ΞΌs              | 888Β±10ΞΌs            | 1.04    | import_iris.Iris.time_util                                                                  |
|          | 9.67Β±0.4ms           | 10.1Β±0.4ms          | 1.04    | load.LoadAndRealise.time_load((1280, 960, 5), False, 'FF')                                  |
|          | 19.7Β±0.8ms           | 19.2Β±1ms            | 0.98    | load.LoadAndRealise.time_load((1280, 960, 5), False, 'NetCDF')                              |
|          | 9.99Β±0.4ms           | 10.1Β±0.4ms          | 1.01    | load.LoadAndRealise.time_load((1280, 960, 5), False, 'PP')                                  |
|          | 9.82Β±0.4ms           | 9.97Β±0.2ms          | 1.01    | load.LoadAndRealise.time_load((1280, 960, 5), True, 'FF')                                   |
|          | 16.0Β±0.8ms           | 16.6Β±0.6ms          | 1.04    | load.LoadAndRealise.time_load((1280, 960, 5), True, 'NetCDF')                               |
|          | 9.86Β±0.2ms           | 10.1Β±0.2ms          | 1.03    | load.LoadAndRealise.time_load((1280, 960, 5), True, 'PP')                                   |
|          | 1.48Β±0.02s           | 1.56Β±0.02s          | 1.05    | load.LoadAndRealise.time_load((2, 2, 1000), False, 'FF')                                    |
|          | 14.4Β±1ms             | 15.6Β±0.6ms          | 1.08    | load.LoadAndRealise.time_load((2, 2, 1000), False, 'NetCDF')                                |
|          | 1.48Β±0.03s           | 1.57Β±0.04s          | 1.06    | load.LoadAndRealise.time_load((2, 2, 1000), False, 'PP')                                    |
|          | 1.47Β±0.03s           | 1.55Β±0.02s          | 1.05    | load.LoadAndRealise.time_load((2, 2, 1000), True, 'FF')                                     |
|          | 14.9Β±0.5ms           | 15.3Β±0.6ms          | 1.03    | load.LoadAndRealise.time_load((2, 2, 1000), True, 'NetCDF')                                 |
|          | 1.48Β±0.03s           | 1.58Β±0.04s          | 1.07    | load.LoadAndRealise.time_load((2, 2, 1000), True, 'PP')                                     |
|          | 5.18Β±0.3ms           | 5.29Β±0.2ms          | 1.02    | load.LoadAndRealise.time_load((50, 50, 2), False, 'FF')                                     |
|          | 14.2Β±0.9ms           | 15.7Β±0.6ms          | 1.11    | load.LoadAndRealise.time_load((50, 50, 2), False, 'NetCDF')                                 |
|          | 5.06Β±0.3ms           | 5.19Β±0.1ms          | 1.03    | load.LoadAndRealise.time_load((50, 50, 2), False, 'PP')                                     |
|          | 5.15Β±0.2ms           | 5.30Β±0.1ms          | 1.03    | load.LoadAndRealise.time_load((50, 50, 2), True, 'FF')                                      |
|          | 14.6Β±0.8ms           | 14.8Β±0.4ms          | 1.02    | load.LoadAndRealise.time_load((50, 50, 2), True, 'NetCDF')                                  |
|          | 5.20Β±0.1ms           | 5.31Β±0.3ms          | 1.02    | load.LoadAndRealise.time_load((50, 50, 2), True, 'PP')                                      |
|          | 25.6Β±2ms             | 28.5Β±2ms            | 1.11    | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'FF')                               |
|          | 28.0Β±0.6ms           | 27.7Β±1ms            | 0.99    | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'NetCDF')                           |
|          | 12.7Β±2ms             | 12.8Β±1ms            | 1.01    | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'PP')                               |
|          | 29.7Β±2ms             | 29.1Β±1ms            | 0.98    | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'FF')                                |
|          | 97.6Β±2ms             | 96.6Β±1ms            | 0.99    | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'NetCDF')                            |
|          | 29.2Β±2ms             | 28.3Β±0.8ms          | 0.97    | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'PP')                                |
|          | 601Β±5ms              | 599Β±10ms            | 1.00    | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'FF')                                 |
|          | 6.12Β±0.2ms           | 5.91Β±0.3ms          | 0.97    | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'NetCDF')                             |
|          | 599Β±10ms             | 602Β±9ms             | 1.01    | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'PP')                                 |
|          | 610Β±7ms              | 610Β±10ms            | 1.00    | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'FF')                                  |
|          | 5.75Β±0.4ms           | 5.78Β±0.5ms          | 1.01    | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'NetCDF')                              |
|          | 602Β±10ms             | 602Β±20ms            | 1.00    | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'PP')                                  |
|          | 2.02Β±0.1ms           | 2.19Β±0.1ms          | 1.08    | load.LoadAndRealise.time_realise((50, 50, 2), False, 'FF')                                  |
|          | 5.90Β±0.3ms           | 5.83Β±0.4ms          | 0.99    | load.LoadAndRealise.time_realise((50, 50, 2), False, 'NetCDF')                              |
|          | 2.18Β±0.1ms           | 2.19Β±0.09ms         | 1.01    | load.LoadAndRealise.time_realise((50, 50, 2), False, 'PP')                                  |
|          | 2.18Β±0.08ms          | 2.21Β±0.08ms         | 1.01    | load.LoadAndRealise.time_realise((50, 50, 2), True, 'FF')                                   |
|          | 6.05Β±0.2ms           | 6.09Β±0.4ms          | 1.01    | load.LoadAndRealise.time_realise((50, 50, 2), True, 'NetCDF')                               |
|          | 2.14Β±0.09ms          | 2.18Β±0.1ms          | 1.02    | load.LoadAndRealise.time_realise((50, 50, 2), True, 'PP')                                   |
|          | 342Β±5ms              | 351Β±6ms             | 1.03    | load.ManyCubes.time_many_cube_load                                                          |
|          | 91.3Β±1ms             | 91.7Β±2ms            | 1.00    | load.ManyVars.time_many_var_load                                                            |
|          | 9.71Β±0.2ms           | 10.4Β±0.4ms          | 1.07    | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'FF')                            |
|          | 9.89Β±0.1ms           | 10.2Β±0.6ms          | 1.03    | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'PP')                            |
|          | 1.48Β±0.01s           | 1.55Β±0.03s          | 1.04    | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'FF')                              |
|          | 1.49Β±0.03s           | 1.56Β±0.03s          | 1.05    | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'PP')                              |
|          | 5.18Β±0.08ms          | 5.27Β±0.3ms          | 1.02    | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'FF')                                 |
|          | 5.18Β±0.06ms          | 5.23Β±0.2ms          | 1.01    | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'PP')                                 |
|          | 8.80Β±0.3ms           | 9.26Β±0.4ms          | 1.05    | load.StructuredFF.time_structured_load((1280, 960, 5), False)                               |
|          | 5.46Β±0.2ms           | 5.60Β±0.2ms          | 1.03    | load.StructuredFF.time_structured_load((1280, 960, 5), True)                                |
|          | 1.48Β±0.02s           | 1.53Β±0.04s          | 1.03    | load.StructuredFF.time_structured_load((2, 2, 1000), False)                                 |
|          | 422Β±8ms              | 430Β±6ms             | 1.02    | load.StructuredFF.time_structured_load((2, 2, 1000), True)                                  |
|          | 4.28Β±0.2ms           | 4.36Β±0.3ms          | 1.02    | load.StructuredFF.time_structured_load((2, 2, 2), False)                                    |
|          | 4.16Β±0.3ms           | 4.30Β±0.3ms          | 1.03    | load.StructuredFF.time_structured_load((2, 2, 2), True)                                     |
|          | 153Β±2ms              | 161Β±5ms             | 1.05    | load.TimeConstraint.time_time_constraint(20, 'FF')                                          |
|          | 16.9Β±1ms             | 17.7Β±0.4ms          | 1.04    | load.TimeConstraint.time_time_constraint(20, 'NetCDF')                                      |
|          | 155Β±2ms              | 160Β±2ms             | 1.03    | load.TimeConstraint.time_time_constraint(20, 'PP')                                          |
|          | 30.7Β±0.8ms           | 32.6Β±1ms            | 1.06    | load.TimeConstraint.time_time_constraint(3, 'FF')                                           |
|          | 16.8Β±1ms             | 17.5Β±1ms            | 1.04    | load.TimeConstraint.time_time_constraint(3, 'NetCDF')                                       |
|          | 31.7Β±1ms             | 32.3Β±0.7ms          | 1.02    | load.TimeConstraint.time_time_constraint(3, 'PP')                                           |
|          | 22.0Β±0.4ms           | 23.3Β±0.6ms          | 1.06    | load.ugrid.BasicLoading.time_load_file(1)                                                   |
|          | 54.6Β±0.3ms           | 58.1Β±1ms            | 1.06    | load.ugrid.BasicLoading.time_load_file(200000)                                              |
|          | 11.8Β±0.6ms           | 12.0Β±0.3ms          | 1.02    | load.ugrid.BasicLoading.time_load_mesh(1)                                                   |
|          | 21.9Β±1ms             | 23.7Β±0.3ms          | 1.08    | load.ugrid.BasicLoading.time_load_mesh(200000)                                              |
|          | 21.4Β±2ms             | 23.5Β±0.4ms          | 1.10    | load.ugrid.BasicLoadingTime.time_load_file(1)                                               |
|          | 21.6Β±1ms             | 23.7Β±0.5ms          | 1.09    | load.ugrid.BasicLoadingTime.time_load_file(200000)                                          |
|          | 11.0Β±0.9ms           | 12.5Β±0.4ms          | 1.14    | load.ugrid.BasicLoadingTime.time_load_mesh(1)                                               |
|          | 14.5Β±1ms             | 15.5Β±0.7ms          | 1.06    | load.ugrid.BasicLoadingTime.time_load_mesh(200000)                                          |
|          | 23.3Β±0.9ms           | 24.7Β±0.9ms          | 1.06    | load.ugrid.Callback.time_load_file_callback(1)                                              |
|          | 65.9Β±2ms             | 68.9Β±1ms            | 1.04    | load.ugrid.Callback.time_load_file_callback(200000)                                         |
|          | 24.1Β±0.6ms           | 24.6Β±0.4ms          | 1.02    | load.ugrid.CallbackTime.time_load_file_callback(1)                                          |
|          | 25.5Β±0.6ms           | 26.9Β±0.3ms          | 1.06    | load.ugrid.CallbackTime.time_load_file_callback(200000)                                     |
|          | 6.12Β±0.2ms           | 6.11Β±0.2ms          | 1.00    | load.ugrid.DataRealisation.time_realise_data(10000)                                         |
|          | 9.28Β±0.8ms           | 9.38Β±0.5ms          | 1.01    | load.ugrid.DataRealisation.time_realise_data(200000)                                        |
|          | 45.0Β±2ms             | 43.2Β±4ms            | 0.96    | load.ugrid.DataRealisationTime.time_realise_data(10000)                                     |
|          | 808Β±20ms             | 809Β±10ms            | 1.00    | load.ugrid.DataRealisationTime.time_realise_data(200000)                                    |
|          | 1.45Β±0.04s           | 1.41Β±0.04s          | 0.97    | merge_concat.Concatenate.time_concatenate(False)                                            |
|          | 452Β±20ms             | 452Β±10ms            | 1.00    | merge_concat.Concatenate.time_concatenate(True)                                             |
|          | 2.42Β±0G              | 2.43Β±0.01G          | 1.00    | merge_concat.Concatenate.tracemalloc_concatenate(False)                                     |
|          | 110Β±4M               | 121Β±7M              | 1.09    | merge_concat.Concatenate.tracemalloc_concatenate(True)                                      |
|          | 36.0Β±3ms             | 37.9Β±2ms            | 1.05    | merge_concat.Merge.time_merge                                                               |
|          | 126Β±0.03M            | 126Β±0.03M           | 1.00    | merge_concat.Merge.tracemalloc_merge                                                        |
|          | 368Β±3ns              | 372Β±2ns             | 1.01    | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(50)              |
|          | 228Β±1ms              | 201Β±2ms             | 0.88    | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(500)             |
|          | 772Β±0.5k             | 771Β±0.7k            | 1.00    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(50)       |
|          | 60.2Β±0M              | 60.2Β±0M             | 1.00    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(500)      |
|          | 18.9Β±0.6ms           | 19.5Β±0.7ms          | 1.03    | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(50)           |
|          | 23.9Β±0.9ms           | 23.2Β±0.7ms          | 0.97    | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(500)          |
|          | 1.27Β±0.09M           | 1.23Β±0M             | 0.97    | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(50)    |
|          | 25Β±0.09M             | 25Β±0M               | 1.00    | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(500)   |
|          | 185Β±10ms             | 181Β±3ms             | 0.98    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(50)         |
|          | 713Β±10ms             | 668Β±10ms            | 0.94    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(500)        |
|          | 1.51Β±0.02M           | 1.62Β±0.04M          | 1.08    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(50)  |
|          | 96.5Β±0.02M           | 96.6Β±0.03M          | 1.00    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(500) |
|          | 126Β±7ms              | 128Β±4ms             | 1.02    | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(50)                             |
|          | 630Β±20ms             | 617Β±10ms            | 0.98    | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(500)                            |
|          | 1.43Β±0.03M           | 1.53Β±0.02M          | 1.07    | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(50)                      |
|          | 96.4Β±0.03M           | 96.5Β±0.03M          | 1.00    | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(500)                     |
|          | 2.1752849999999997   | 2.1752849999999997  | 1.00    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(50)                  |
|          | 216.01528499999998   | 216.01528499999998  | 1.00    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(500)                 |
|          | 6.44Β±0.2ms           | 6.61Β±0.3ms          | 1.03    | plot.AuxSort.time_aux_sort                                                                  |
|          | 79.8Β±3ms             | 82.7Β±3ms            | 1.04    | regridding.CurvilinearRegridding.time_regrid_pic                                            |
|          | 136Β±3M               | 136Β±3M              | 1.00    | regridding.CurvilinearRegridding.tracemalloc_regrid_pic                                     |
|          | 108Β±7ms              | 108Β±6ms             | 1.00    | regridding.HorizontalChunkedRegridding.time_regrid_area_w                                   |
|          | 58.9Β±1ms             | 67.5Β±2ms            | 1.15    | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid                          |
|          | 107Β±0.1M             | 107Β±0.3M            | 1.00    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w                            |
|          | 147Β±0.04M            | 147Β±0.04M           | 1.00    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w_new_grid                   |
|          | 6.85Β±0.4ms           | 6.76Β±0.8ms          | 0.99    | save.NetcdfSave.time_netcdf_save_cube(50, False)                                            |
|          | 125Β±2ms              | 127Β±5ms             | 1.02    | save.NetcdfSave.time_netcdf_save_cube(50, True)                                             |
|          | 48.5Β±1ms             | 48.2Β±1ms            | 1.00    | save.NetcdfSave.time_netcdf_save_cube(600, False)                                           |
|          | 555Β±10ms             | 552Β±20ms            | 0.99    | save.NetcdfSave.time_netcdf_save_cube(600, True)                                            |
|          | 91.4Β±1ns             | 91.1Β±0.3ns          | 1.00    | save.NetcdfSave.time_netcdf_save_mesh(50, False)                                            |
|          | 106Β±3ms              | 107Β±6ms             | 1.01    | save.NetcdfSave.time_netcdf_save_mesh(50, True)                                             |
|          | 90.4Β±0.7ns           | 92.2Β±0.7ns          | 1.02    | save.NetcdfSave.time_netcdf_save_mesh(600, False)                                           |
|          | 478Β±20ms             | 481Β±7ms             | 1.01    | save.NetcdfSave.time_netcdf_save_mesh(600, True)                                            |
|          | 31.8Β±0.3k            | 30.5Β±0.3k           | 0.96    | save.NetcdfSave.tracemalloc_netcdf_save(50, False)                                          |
|          | 1.63Β±0.2M            | 1.99Β±0.1M           | ~1.22   | save.NetcdfSave.tracemalloc_netcdf_save(50, True)                                           |
|          | 31.9Β±0.4k            | 30.5Β±0.4k           | 0.95    | save.NetcdfSave.tracemalloc_netcdf_save(600, False)                                         |
|          | 225Β±20M              | 208Β±20M             | 0.92    | save.NetcdfSave.tracemalloc_netcdf_save(600, True)                                          |
|          | 38.0Β±2ms             | 40.2Β±0.8ms          | 1.06    | stats.PearsonR.time_lazy                                                                    |
|          | 9.40Β±0.5ms           | 9.37Β±0.5ms          | 1.00    | stats.PearsonR.time_real                                                                    |
|          | 29.3Β±0.7M            | 30.6Β±0.9M           | 1.05    | stats.PearsonR.tracemalloc_lazy                                                             |
|          | 18.3Β±0.01M           | 18.3Β±0M             | 1.00    | stats.PearsonR.tracemalloc_real                                                             |
|          | 28.3Β±1ms             | 28.9Β±1ms            | 1.02    | trajectory.TrajectoryInterpolation.time_trajectory_linear                                   |
|          | 63.3Β±2ms             | 63.6Β±1ms            | 1.00    | trajectory.TrajectoryInterpolation.time_trajectory_nearest                                  |
|          | 17.6Β±0.02M           | 17.6Β±0.04M          | 1.00    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_linear                            |
|          | 7.75Β±0.02M           | 7.77Β±0.05M          | 1.00    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_nearest                           |

Benchmarks that have got worse:

| Change   | Before [41414842]    | After [242ca87b]    |   Ratio | Benchmark (Parameter)               |
|----------|----------------------|---------------------|---------|-------------------------------------|
| +        | 186Β±4ΞΌs              | 224Β±3ΞΌs             |    1.21 | import_iris.Iris.time__constraints  |
| +        | 319Β±9ΞΌs              | 392Β±10ΞΌs            |    1.23 | import_iris.Iris.time_aux_factory   |
| +        | 168Β±7ΞΌs              | 203Β±5ΞΌs             |    1.21 | import_iris.Iris.time_common_mixin  |
| +        | 378Β±30ΞΌs             | 470Β±3ΞΌs             |    1.24 | import_iris.Iris.time_coord_systems |
| +        | 715Β±50ΞΌs             | 934Β±10ΞΌs            |    1.31 | import_iris.Iris.time_cube          |
| +        | 77.0Β±2ΞΌs             | 93.0Β±0.6ΞΌs          |    1.21 | iterate.IZip.time_izip              |

Generated by GHA run 21002407211

@github-actions
Copy link
Contributor

⏱️ Performance Benchmark Report: 48ea84d

Performance shifts
| Change   | Before [41414842]    | After [48ea84dd]    |   Ratio | Benchmark (Parameter)                                             |
|----------|----------------------|---------------------|---------|-------------------------------------------------------------------|
| +        | 185Β±2ΞΌs              | 225Β±2ΞΌs             |    1.22 | import_iris.Iris.time__constraints                                |
| +        | 317Β±2ΞΌs              | 389Β±3ΞΌs             |    1.22 | import_iris.Iris.time_aux_factory                                 |
| +        | 168Β±1ΞΌs              | 202Β±2ΞΌs             |    1.21 | import_iris.Iris.time_common_mixin                                |
| +        | 377Β±6ΞΌs              | 456Β±3ΞΌs             |    1.21 | import_iris.Iris.time_coord_systems                               |
| +        | 704Β±10ΞΌs             | 939Β±20ΞΌs            |    1.33 | import_iris.Iris.time_cube                                        |
| +        | 442Β±10ΞΌs             | 537Β±20ΞΌs            |    1.21 | import_iris.Iris.time_fileformats_cf                              |
| +        | 136Β±2ΞΌs              | 168Β±30ΞΌs            |    1.23 | import_iris.Iris.time_fileformats_um__fast_load_structured_fields |
| +        | 176Β±1ΞΌs              | 212Β±4ΞΌs             |    1.21 | import_iris.Iris.time_io_format_picker                            |
| +        | 77.3Β±0.7ΞΌs           | 95.9Β±1ΞΌs            |    1.24 | iterate.IZip.time_izip                                            |
| +        | 7.14Β±0.8ms           | 9.11Β±0.4ms          |    1.28 | load.ugrid.DataRealisation.time_realise_data(200000)              |
Full benchmark results

Benchmarks that have stayed the same:

| Change   | Before [41414842]    | After [48ea84dd]    |   Ratio | Benchmark (Parameter)                                                                       |
|----------|----------------------|---------------------|---------|---------------------------------------------------------------------------------------------|
|          | 20.2Β±0.2ms           | 19.9Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(False)                              |
|          | 54.7Β±1ms             | 54.3Β±0.7ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(True)                               |
|          | 34.1Β±0.5ms           | 34.1Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(False)                    |
|          | 190Β±2ms              | 191Β±4ms             |    1    | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(True)                     |
|          | 22.2Β±0.2ms           | 22.1Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(False)                              |
|          | 33.7Β±0.5ms           | 33.8Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(True)                               |
|          | 22.6Β±0.3ms           | 22.5Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(False)                              |
|          | 33.0Β±0.6ms           | 33.5Β±0.5ms          |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(True)                               |
|          | 20.2Β±0.1ms           | 19.9Β±0.2ms          |    0.98 | aggregate_collapse.Aggregation.time_aggregated_by_MAX(False)                                |
|          | 46.3Β±1ms             | 46.2Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MAX(True)                                 |
|          | 130Β±1ms              | 130Β±0.8ms           |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(False)                            |
|          | 133Β±1ms              | 136Β±0.9ms           |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(True)                             |
|          | 21.1Β±0.2ms           | 21.0Β±0.3ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(False)                               |
|          | 49.9Β±2ms             | 49.3Β±0.6ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(True)                                |
|          | 22.4Β±0.2ms           | 22.2Β±0.4ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(False)                             |
|          | 58.1Β±1ms             | 58.6Β±1ms            |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(True)                              |
|          | 20.1Β±0.2ms           | 20.0Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MIN(False)                                |
|          | 46.5Β±0.7ms           | 45.9Β±0.6ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MIN(True)                                 |
|          | 1.06Β±0.01s           | 1.09Β±0.01s          |    1.03 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(False)                               |
|          | 1.05Β±0.01s           | 1.09Β±0.01s          |    1.03 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(True)                                |
|          | 207Β±3ms              | 219Β±2ms             |    1.06 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(False)                         |
|          | 375Β±8ms              | 384Β±6ms             |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(True)                          |
|          | 21.1Β±0.3ms           | 21.0Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(False)                         |
|          | 31.7Β±0.3ms           | 31.9Β±0.5ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(True)                          |
|          | 21.4Β±0.2ms           | 21.5Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_RMS(False)                                |
|          | 59.7Β±0.9ms           | 59.7Β±0.9ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_RMS(True)                                 |
|          | 22.4Β±0.1ms           | 22.1Β±0.2ms          |    0.98 | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(False)                            |
|          | 63.5Β±1ms             | 63.3Β±1ms            |    1    | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(True)                             |
|          | 21.9Β±0.3ms           | 22.0Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(False)                           |
|          | 59.8Β±1ms             | 60.4Β±0.7ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(True)                            |
|          | 7.70Β±0.06ms          | 7.83Β±0.1ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(False)                               |
|          | 23.8Β±0.4ms           | 23.9Β±0.2ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(True)                                |
|          | 19.3Β±0.2ms           | 20.1Β±0.1ms          |    1.04 | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(False)                     |
|          | 148Β±2ms              | 148Β±4ms             |    1    | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(True)                      |
|          | 8.03Β±0.04ms          | 8.19Β±0.09ms         |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(False)                               |
|          | 22.1Β±0.4ms           | 22.5Β±0.4ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(True)                                |
|          | 8.01Β±0.09ms          | 8.22Β±0.1ms          |    1.03 | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(False)                               |
|          | 22.1Β±0.3ms           | 22.1Β±0.4ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(True)                                |
|          | 7.62Β±0.05ms          | 7.75Β±0.07ms         |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_MAX(False)                                 |
|          | 22.5Β±0.3ms           | 22.8Β±0.4ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_MAX(True)                                  |
|          | 24.8Β±0.3ms           | 24.3Β±0.1ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(False)                             |
|          | 37.0Β±0.9ms           | 37.3Β±0.6ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(True)                              |
|          | 7.86Β±0.07ms          | 8.08Β±0.1ms          |    1.03 | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(False)                                |
|          | 22.8Β±0.3ms           | 22.9Β±0.4ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(True)                                 |
|          | 8.89Β±0.1ms           | 9.00Β±0.06ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(False)                              |
|          | 24.6Β±0.4ms           | 25.2Β±0.6ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(True)                               |
|          | 7.62Β±0.08ms          | 7.77Β±0.06ms         |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_MIN(False)                                 |
|          | 22.4Β±0.3ms           | 22.7Β±0.3ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MIN(True)                                  |
|          | 522Β±2ms              | 531Β±2ms             |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(False)                                |
|          | 537Β±5ms              | 541Β±1ms             |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(True)                                 |
|          | 44.4Β±0.4ms           | 46.2Β±0.3ms          |    1.04 | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(False)                          |
|          | 157Β±2ms              | 161Β±2ms             |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(True)                           |
|          | 7.93Β±0.08ms          | 8.06Β±0.1ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(False)                          |
|          | 21.8Β±0.4ms           | 22.4Β±0.3ms          |    1.03 | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(True)                           |
|          | 7.95Β±0.1ms           | 8.06Β±0.06ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_RMS(False)                                 |
|          | 24.2Β±0.3ms           | 24.5Β±0.3ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_RMS(True)                                  |
|          | 8.15Β±0.07ms          | 8.27Β±0.1ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(False)                             |
|          | 23.8Β±0.4ms           | 24.3Β±0.3ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(True)                              |
|          | 8.16Β±0.09ms          | 8.23Β±0.08ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(False)                            |
|          | 23.8Β±0.4ms           | 23.7Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(True)                             |
|          | 21.7Β±0.2ms           | 21.3Β±0.1ms          |    0.98 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(False)                     |
|          | 84.3Β±1ms             | 84.8Β±1ms            |    1.01 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(True)                      |
|          | 21.6Β±0.3ms           | 21.4Β±0.2ms          |    0.99 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(False)                      |
|          | 94.6Β±1ms             | 96.5Β±0.5ms          |    1.02 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(True)                       |
|          | 20.4Β±0.2ms           | 20.3Β±0.2ms          |    0.99 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(False)                      |
|          | 55.8Β±1ms             | 56.5Β±0.6ms          |    1.01 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(True)                       |
|          | 8.15Β±0.1ms           | 8.26Β±0.1ms          |    1.01 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(False)                      |
|          | 28.6Β±0.6ms           | 28.8Β±0.7ms          |    1    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(True)                       |
|          | 8.01Β±0.1ms           | 8.31Β±0.2ms          |    1.04 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(False)                       |
|          | 30.7Β±0.7ms           | 30.6Β±0.4ms          |    1    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(True)                        |
|          | 7.81Β±0.09ms          | 7.92Β±0.1ms          |    1.02 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(False)                       |
|          | 24.2Β±0.4ms           | 24.4Β±0.5ms          |    1.01 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(True)                        |
|          | 220Β±0.8ms            | 227Β±1ms             |    1.03 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(False)               |
|          | 302Β±3ms              | 316Β±6ms             |    1.05 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(True)                |
|          | 1.09Β±0.01ms          | 1.12Β±0.01ms         |    1.02 | cube.CubeCreation.time_create(False, 'construct')                                           |
|          | 380Β±4ΞΌs              | 397Β±5ΞΌs             |    1.04 | cube.CubeCreation.time_create(False, 'instantiate')                                         |
|          | 1.92Β±0.02ms          | 2.03Β±0.03ms         |    1.06 | cube.CubeCreation.time_create(True, 'construct')                                            |
|          | 1.35Β±0.01ms          | 1.41Β±0.02ms         |    1.05 | cube.CubeCreation.time_create(True, 'instantiate')                                          |
|          | 82.5Β±1ms             | 80.3Β±2ms            |    0.97 | cube.CubeEquality.time_equality(False, False, 'all_equal')                                  |
|          | 24.2Β±0.5ms           | 24.8Β±0.9ms          |    1.03 | cube.CubeEquality.time_equality(False, False, 'coord_inequality')                           |
|          | 94.7Β±2ms             | 94.7Β±2ms            |    1    | cube.CubeEquality.time_equality(False, False, 'data_inequality')                            |
|          | 16.5Β±0.2ΞΌs           | 16.9Β±0.1ΞΌs          |    1.03 | cube.CubeEquality.time_equality(False, False, 'metadata_inequality')                        |
|          | 85.6Β±2ms             | 86.4Β±1ms            |    1.01 | cube.CubeEquality.time_equality(False, True, 'all_equal')                                   |
|          | 27.7Β±0.3ms           | 27.1Β±1ms            |    0.98 | cube.CubeEquality.time_equality(False, True, 'coord_inequality')                            |
|          | 100Β±2ms              | 100Β±2ms             |    1    | cube.CubeEquality.time_equality(False, True, 'data_inequality')                             |
|          | 16.5Β±0.1ΞΌs           | 16.8Β±0.2ΞΌs          |    1.02 | cube.CubeEquality.time_equality(False, True, 'metadata_inequality')                         |
|          | 188Β±2ms              | 190Β±3ms             |    1.01 | cube.CubeEquality.time_equality(True, False, 'all_equal')                                   |
|          | 79.5Β±1ms             | 80.6Β±2ms            |    1.01 | cube.CubeEquality.time_equality(True, False, 'coord_inequality')                            |
|          | 218Β±3ms              | 220Β±4ms             |    1.01 | cube.CubeEquality.time_equality(True, False, 'data_inequality')                             |
|          | 49.9Β±0.5ΞΌs           | 53.0Β±0.4ΞΌs          |    1.06 | cube.CubeEquality.time_equality(True, False, 'metadata_inequality')                         |
|          | 282Β±4ms              | 289Β±7ms             |    1.02 | cube.CubeEquality.time_equality(True, True, 'all_equal')                                    |
|          | 175Β±3ms              | 179Β±2ms             |    1.02 | cube.CubeEquality.time_equality(True, True, 'coord_inequality')                             |
|          | 313Β±4ms              | 319Β±5ms             |    1.02 | cube.CubeEquality.time_equality(True, True, 'data_inequality')                              |
|          | 359Β±5ΞΌs              | 374Β±6ΞΌs             |    1.04 | cube.CubeEquality.time_equality(True, True, 'metadata_inequality')                          |
|          | 805Β±2ΞΌs              | 945Β±10ΞΌs            |    1.17 | import_iris.Iris.time__concatenate                                                          |
|          | 116Β±2ΞΌs              | 133Β±2ΞΌs             |    1.15 | import_iris.Iris.time__data_manager                                                         |
|          | 91.3Β±0.7ΞΌs           | 96.8Β±0.8ΞΌs          |    1.06 | import_iris.Iris.time__deprecation                                                          |
|          | 165Β±2ΞΌs              | 171Β±2ΞΌs             |    1.04 | import_iris.Iris.time__lazy_data                                                            |
|          | 900Β±5ΞΌs              | 1.06Β±0.01ms         |    1.18 | import_iris.Iris.time__merge                                                                |
|          | 73.5Β±1ΞΌs             | 73.0Β±1ΞΌs            |    0.99 | import_iris.Iris.time__representation                                                       |
|          | 614Β±10ΞΌs             | 711Β±10ΞΌs            |    1.16 | import_iris.Iris.time_analysis                                                              |
|          | 141Β±1ΞΌs              | 150Β±2ΞΌs             |    1.06 | import_iris.Iris.time_analysis__area_weighted                                               |
|          | 107Β±0.7ΞΌs            | 107Β±1ΞΌs             |    0.99 | import_iris.Iris.time_analysis__grid_angles                                                 |
|          | 245Β±2ΞΌs              | 277Β±4ΞΌs             |    1.13 | import_iris.Iris.time_analysis__interpolation                                               |
|          | 192Β±2ΞΌs              | 215Β±3ΞΌs             |    1.12 | import_iris.Iris.time_analysis__regrid                                                      |
|          | 111Β±1ΞΌs              | 126Β±2ΞΌs             |    1.14 | import_iris.Iris.time_analysis__scipy_interpolate                                           |
|          | 138Β±3ΞΌs              | 137Β±2ΞΌs             |    0.99 | import_iris.Iris.time_analysis_calculus                                                     |
|          | 325Β±6ΞΌs              | 344Β±5ΞΌs             |    1.06 | import_iris.Iris.time_analysis_cartography                                                  |
|          | 93.8Β±1ΞΌs             | 89.8Β±4ΞΌs            |    0.96 | import_iris.Iris.time_analysis_geomerty                                                     |
|          | 214Β±2ΞΌs              | 226Β±3ΞΌs             |    1.06 | import_iris.Iris.time_analysis_maths                                                        |
|          | 95.2Β±2ΞΌs             | 95.3Β±3ΞΌs            |    1    | import_iris.Iris.time_analysis_stats                                                        |
|          | 173Β±5ΞΌs              | 190Β±4ΞΌs             |    1.1  | import_iris.Iris.time_analysis_trajectory                                                   |
|          | 79.7Β±0.4ΞΌs           | 79.1Β±2ΞΌs            |    0.99 | import_iris.Iris.time_common                                                                |
|          | 159Β±1ΞΌs              | 187Β±2ΞΌs             |    1.18 | import_iris.Iris.time_common_lenient                                                        |
|          | 1.33Β±0.01ms          | 1.53Β±0.02ms         |    1.15 | import_iris.Iris.time_common_metadata                                                       |
|          | 1.14Β±0.01ms          | 1.27Β±0.02ms         |    1.11 | import_iris.Iris.time_common_resolve                                                        |
|          | 195Β±0.8ΞΌs            | 218Β±0.8ΞΌs           |    1.12 | import_iris.Iris.time_config                                                                |
|          | 127Β±1ΞΌs              | 131Β±2ΞΌs             |    1.03 | import_iris.Iris.time_coord_categorisation                                                  |
|          | 766Β±3ΞΌs              | 898Β±20ΞΌs            |    1.17 | import_iris.Iris.time_coords                                                                |
|          | 259Β±4ΞΌs              | 281Β±5ΞΌs             |    1.08 | import_iris.Iris.time_exceptions                                                            |
|          | 73.6Β±0.3ΞΌs           | 71.5Β±4ΞΌs            |    0.97 | import_iris.Iris.time_experimental                                                          |
|          | 176Β±1ΞΌs              | 176Β±2ΞΌs             |    1    | import_iris.Iris.time_fileformats                                                           |
|          | 255Β±2ΞΌs              | 291Β±2ΞΌs             |    1.14 | import_iris.Iris.time_fileformats__ff                                                       |
|          | 2.59Β±0.02ms          | 2.62Β±0.05ms         |    1.01 | import_iris.Iris.time_fileformats__ff_cross_references                                      |
|          | 75.7Β±0.2ΞΌs           | 74.5Β±2ΞΌs            |    0.98 | import_iris.Iris.time_fileformats__pp_lbproc_pairs                                          |
|          | 113Β±1ΞΌs              | 123Β±5ΞΌs             |    1.09 | import_iris.Iris.time_fileformats_abf                                                       |
|          | 4.72Β±0.04ms          | 4.73Β±0.05ms         |    1    | import_iris.Iris.time_fileformats_dot                                                       |
|          | 73.0Β±0.9ΞΌs           | 70.8Β±2ΞΌs            |    0.97 | import_iris.Iris.time_fileformats_name                                                      |
|          | 251Β±2ΞΌs              | 269Β±4ΞΌs             |    1.07 | import_iris.Iris.time_fileformats_name_loaders                                              |
|          | 112Β±1ΞΌs              | 116Β±2ΞΌs             |    1.03 | import_iris.Iris.time_fileformats_netcdf                                                    |
|          | 121Β±1ΞΌs              | 130Β±2ΞΌs             |    1.08 | import_iris.Iris.time_fileformats_nimrod                                                    |
|          | 209Β±2ΞΌs              | 208Β±4ΞΌs             |    0.99 | import_iris.Iris.time_fileformats_nimrod_load_rules                                         |
|          | 788Β±6ΞΌs              | 895Β±9ΞΌs             |    1.14 | import_iris.Iris.time_fileformats_pp                                                        |
|          | 181Β±1ΞΌs              | 176Β±4ΞΌs             |    0.97 | import_iris.Iris.time_fileformats_pp_load_rules                                             |
|          | 139Β±2ΞΌs              | 134Β±6ΞΌs             |    0.97 | import_iris.Iris.time_fileformats_pp_save_rules                                             |
|          | 544Β±6ΞΌs              | 605Β±20ΞΌs            |    1.11 | import_iris.Iris.time_fileformats_rules                                                     |
|          | 218Β±0.7ΞΌs            | 253Β±2ΞΌs             |    1.16 | import_iris.Iris.time_fileformats_structured_array_identification                           |
|          | 80.2Β±0.6ΞΌs           | 78.7Β±1ΞΌs            |    0.98 | import_iris.Iris.time_fileformats_um                                                        |
|          | 156Β±0.9ΞΌs            | 171Β±6ΞΌs             |    1.09 | import_iris.Iris.time_fileformats_um__fast_load                                             |
|          | 72.5Β±0.3ΞΌs           | 72.5Β±1ΞΌs            |    1    | import_iris.Iris.time_fileformats_um__ff_replacement                                        |
|          | 78.9Β±1ΞΌs             | 77.7Β±2ΞΌs            |    0.99 | import_iris.Iris.time_fileformats_um__optimal_array_structuring                             |
|          | 949Β±10ΞΌs             | 975Β±10ΞΌs            |    1.03 | import_iris.Iris.time_fileformats_um_cf_map                                                 |
|          | 137Β±1ΞΌs              | 143Β±2ΞΌs             |    1.04 | import_iris.Iris.time_io                                                                    |
|          | 210Β±2ΞΌs              | 216Β±3ΞΌs             |    1.03 | import_iris.Iris.time_iris                                                                  |
|          | 125Β±0.5ΞΌs            | 137Β±2ΞΌs             |    1.1  | import_iris.Iris.time_iterate                                                               |
|          | 8.28Β±0.1ms           | 8.19Β±0.09ms         |    0.99 | import_iris.Iris.time_palette                                                               |
|          | 1.78Β±0.01ms          | 1.80Β±0.01ms         |    1.01 | import_iris.Iris.time_plot                                                                  |
|          | 217Β±3ΞΌs              | 229Β±3ΞΌs             |    1.05 | import_iris.Iris.time_quickplot                                                             |
|          | 2.22Β±0.07ms          | 2.12Β±0.04ms         |    0.96 | import_iris.Iris.time_std_names                                                             |
|          | 1.81Β±0.02ms          | 1.85Β±0.02ms         |    1.02 | import_iris.Iris.time_symbols                                                               |
|          | 40.5Β±2ms             | 40.7Β±0.7ms          |    1.01 | import_iris.Iris.time_tests                                                                 |
|          | 253Β±5ΞΌs              | 238Β±3ΞΌs             |    0.94 | import_iris.Iris.time_third_party_cartopy                                                   |
|          | 5.13Β±0.04ms          | 5.02Β±0.04ms         |    0.98 | import_iris.Iris.time_third_party_cf_units                                                  |
|          | 121Β±2ΞΌs              | 120Β±1ΞΌs             |    0.99 | import_iris.Iris.time_third_party_cftime                                                    |
|          | 2.66Β±0.01ms          | 2.68Β±0.01ms         |    1.01 | import_iris.Iris.time_third_party_matplotlib                                                |
|          | 556Β±6ΞΌs              | 553Β±7ΞΌs             |    1    | import_iris.Iris.time_third_party_numpy                                                     |
|          | 167Β±3ΞΌs              | 169Β±2ΞΌs             |    1.01 | import_iris.Iris.time_third_party_scipy                                                     |
|          | 98.0Β±0.6ΞΌs           | 112Β±1ΞΌs             |    1.14 | import_iris.Iris.time_time                                                                  |
|          | 851Β±5ΞΌs              | 885Β±20ΞΌs            |    1.04 | import_iris.Iris.time_util                                                                  |
|          | 9.81Β±0.2ms           | 9.92Β±0.09ms         |    1.01 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'FF')                                  |
|          | 18.8Β±0.4ms           | 18.8Β±0.4ms          |    1    | load.LoadAndRealise.time_load((1280, 960, 5), False, 'NetCDF')                              |
|          | 9.78Β±0.04ms          | 9.97Β±0.06ms         |    1.02 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'PP')                                  |
|          | 9.66Β±0.08ms          | 9.96Β±0.1ms          |    1.03 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'FF')                                   |
|          | 15.4Β±0.2ms           | 15.5Β±0.1ms          |    1.01 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'NetCDF')                               |
|          | 9.76Β±0.1ms           | 10.00Β±0.03ms        |    1.02 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'PP')                                   |
|          | 1.46Β±0.02s           | 1.52Β±0.01s          |    1.04 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'FF')                                    |
|          | 14.5Β±0.1ms           | 14.6Β±0.1ms          |    1.01 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'NetCDF')                                |
|          | 1.49Β±0.01s           | 1.54Β±0.01s          |    1.03 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'PP')                                    |
|          | 1.47Β±0.01s           | 1.51Β±0.02s          |    1.03 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'FF')                                     |
|          | 14.4Β±0.1ms           | 14.4Β±0.2ms          |    1    | load.LoadAndRealise.time_load((2, 2, 1000), True, 'NetCDF')                                 |
|          | 1.51Β±0.01s           | 1.54Β±0.04s          |    1.01 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'PP')                                     |
|          | 5.21Β±0.1ms           | 5.24Β±0.09ms         |    1.01 | load.LoadAndRealise.time_load((50, 50, 2), False, 'FF')                                     |
|          | 14.1Β±0.2ms           | 14.2Β±0.1ms          |    1.01 | load.LoadAndRealise.time_load((50, 50, 2), False, 'NetCDF')                                 |
|          | 5.17Β±0.04ms          | 5.26Β±0.08ms         |    1.02 | load.LoadAndRealise.time_load((50, 50, 2), False, 'PP')                                     |
|          | 5.17Β±0.03ms          | 5.19Β±0.1ms          |    1    | load.LoadAndRealise.time_load((50, 50, 2), True, 'FF')                                      |
|          | 14.1Β±0.2ms           | 14.2Β±0.2ms          |    1.01 | load.LoadAndRealise.time_load((50, 50, 2), True, 'NetCDF')                                  |
|          | 5.14Β±0.03ms          | 5.15Β±0.04ms         |    1    | load.LoadAndRealise.time_load((50, 50, 2), True, 'PP')                                      |
|          | 23.5Β±0.9ms           | 25.0Β±1ms            |    1.06 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'FF')                               |
|          | 27.0Β±0.4ms           | 27.4Β±0.8ms          |    1.01 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'NetCDF')                           |
|          | 12.0Β±0.8ms           | 12.0Β±1ms            |    1    | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'PP')                               |
|          | 28.3Β±1ms             | 28.8Β±1ms            |    1.02 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'FF')                                |
|          | 94.5Β±0.7ms           | 95.1Β±0.7ms          |    1.01 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'NetCDF')                            |
|          | 27.8Β±1ms             | 28.4Β±2ms            |    1.02 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'PP')                                |
|          | 608Β±4ms              | 613Β±7ms             |    1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'FF')                                 |
|          | 5.37Β±0.2ms           | 5.40Β±0.08ms         |    1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'NetCDF')                             |
|          | 609Β±5ms              | 613Β±4ms             |    1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'PP')                                 |
|          | 620Β±4ms              | 622Β±3ms             |    1    | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'FF')                                  |
|          | 5.40Β±0.03ms          | 5.48Β±0.1ms          |    1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'NetCDF')                              |
|          | 617Β±2ms              | 617Β±7ms             |    1    | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'PP')                                  |
|          | 2.05Β±0.06ms          | 2.11Β±0.06ms         |    1.03 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'FF')                                  |
|          | 5.43Β±0.07ms          | 5.32Β±0.1ms          |    0.98 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'NetCDF')                              |
|          | 2.03Β±0.09ms          | 2.18Β±0.04ms         |    1.07 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'PP')                                  |
|          | 2.05Β±0.05ms          | 2.17Β±0.06ms         |    1.06 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'FF')                                   |
|          | 5.41Β±0.1ms           | 5.50Β±0.1ms          |    1.02 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'NetCDF')                               |
|          | 2.05Β±0.02ms          | 2.15Β±0.07ms         |    1.05 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'PP')                                   |
|          | 344Β±3ms              | 349Β±4ms             |    1.02 | load.ManyCubes.time_many_cube_load                                                          |
|          | 89.4Β±0.8ms           | 90.1Β±2ms            |    1.01 | load.ManyVars.time_many_var_load                                                            |
|          | 9.82Β±0.2ms           | 9.93Β±0.1ms          |    1.01 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'FF')                            |
|          | 9.93Β±0.09ms          | 10.3Β±0.2ms          |    1.03 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'PP')                            |
|          | 1.49Β±0.01s           | 1.55Β±0.01s          |    1.04 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'FF')                              |
|          | 1.50Β±0.02s           | 1.55Β±0.02s          |    1.04 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'PP')                              |
|          | 5.24Β±0.05ms          | 5.29Β±0.05ms         |    1.01 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'FF')                                 |
|          | 5.23Β±0.02ms          | 5.13Β±0.07ms         |    0.98 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'PP')                                 |
|          | 8.90Β±0.09ms          | 9.15Β±0.2ms          |    1.03 | load.StructuredFF.time_structured_load((1280, 960, 5), False)                               |
|          | 5.52Β±0.1ms           | 5.70Β±0.09ms         |    1.03 | load.StructuredFF.time_structured_load((1280, 960, 5), True)                                |
|          | 1.48Β±0.01s           | 1.51Β±0.02s          |    1.02 | load.StructuredFF.time_structured_load((2, 2, 1000), False)                                 |
|          | 414Β±3ms              | 427Β±4ms             |    1.03 | load.StructuredFF.time_structured_load((2, 2, 1000), True)                                  |
|          | 4.27Β±0.02ms          | 4.35Β±0.04ms         |    1.02 | load.StructuredFF.time_structured_load((2, 2, 2), False)                                    |
|          | 4.12Β±0.05ms          | 4.19Β±0.08ms         |    1.02 | load.StructuredFF.time_structured_load((2, 2, 2), True)                                     |
|          | 156Β±2ms              | 157Β±2ms             |    1.01 | load.TimeConstraint.time_time_constraint(20, 'FF')                                          |
|          | 17.3Β±0.2ms           | 17.4Β±0.3ms          |    1.01 | load.TimeConstraint.time_time_constraint(20, 'NetCDF')                                      |
|          | 157Β±2ms              | 160Β±4ms             |    1.02 | load.TimeConstraint.time_time_constraint(20, 'PP')                                          |
|          | 31.2Β±0.3ms           | 31.3Β±0.4ms          |    1.01 | load.TimeConstraint.time_time_constraint(3, 'FF')                                           |
|          | 17.1Β±0.1ms           | 17.0Β±0.5ms          |    0.99 | load.TimeConstraint.time_time_constraint(3, 'NetCDF')                                       |
|          | 31.3Β±0.4ms           | 31.6Β±0.2ms          |    1.01 | load.TimeConstraint.time_time_constraint(3, 'PP')                                           |
|          | 21.6Β±0.5ms           | 21.9Β±0.5ms          |    1.01 | load.ugrid.BasicLoading.time_load_file(1)                                                   |
|          | 52.9Β±1ms             | 56.0Β±1ms            |    1.06 | load.ugrid.BasicLoading.time_load_file(200000)                                              |
|          | 11.3Β±0.4ms           | 11.8Β±0.7ms          |    1.05 | load.ugrid.BasicLoading.time_load_mesh(1)                                                   |
|          | 20.2Β±0.9ms           | 21.8Β±0.6ms          |    1.08 | load.ugrid.BasicLoading.time_load_mesh(200000)                                              |
|          | 21.1Β±0.7ms           | 21.5Β±0.6ms          |    1.02 | load.ugrid.BasicLoadingTime.time_load_file(1)                                               |
|          | 21.3Β±0.3ms           | 22.6Β±0.6ms          |    1.06 | load.ugrid.BasicLoadingTime.time_load_file(200000)                                          |
|          | 11.1Β±0.3ms           | 11.7Β±0.4ms          |    1.05 | load.ugrid.BasicLoadingTime.time_load_mesh(1)                                               |
|          | 13.4Β±0.7ms           | 14.6Β±0.6ms          |    1.08 | load.ugrid.BasicLoadingTime.time_load_mesh(200000)                                          |
|          | 23.1Β±0.3ms           | 23.8Β±0.4ms          |    1.03 | load.ugrid.Callback.time_load_file_callback(1)                                              |
|          | 64.6Β±0.7ms           | 66.4Β±1ms            |    1.03 | load.ugrid.Callback.time_load_file_callback(200000)                                         |
|          | 23.2Β±0.5ms           | 24.0Β±0.6ms          |    1.03 | load.ugrid.CallbackTime.time_load_file_callback(1)                                          |
|          | 24.6Β±1ms             | 26.4Β±0.3ms          |    1.08 | load.ugrid.CallbackTime.time_load_file_callback(200000)                                     |
|          | 5.43Β±0.1ms           | 5.87Β±0.2ms          |    1.08 | load.ugrid.DataRealisation.time_realise_data(10000)                                         |
|          | 38.9Β±2ms             | 41.2Β±2ms            |    1.06 | load.ugrid.DataRealisationTime.time_realise_data(10000)                                     |
|          | 781Β±6ms              | 780Β±8ms             |    1    | load.ugrid.DataRealisationTime.time_realise_data(200000)                                    |
|          | 1.35Β±0.03s           | 1.35Β±0.03s          |    1    | merge_concat.Concatenate.time_concatenate(False)                                            |
|          | 439Β±5ms              | 442Β±10ms            |    1.01 | merge_concat.Concatenate.time_concatenate(True)                                             |
|          | 2.42Β±0G              | 2.43Β±0.01G          |    1    | merge_concat.Concatenate.tracemalloc_concatenate(False)                                     |
|          | 110Β±2M               | 121Β±7M              |    1.1  | merge_concat.Concatenate.tracemalloc_concatenate(True)                                      |
|          | 34.0Β±2ms             | 32.6Β±2ms            |    0.96 | merge_concat.Merge.time_merge                                                               |
|          | 126Β±0.03M            | 126Β±0.03M           |    1    | merge_concat.Merge.tracemalloc_merge                                                        |
|          | 360Β±3ns              | 380Β±3ns             |    1.06 | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(50)              |
|          | 228Β±1ms              | 202Β±2ms             |    0.89 | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(500)             |
|          | 771Β±0.5k             | 771Β±0.6k            |    1    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(50)       |
|          | 60.2Β±0M              | 60.2Β±0M             |    1    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(500)      |
|          | 19.1Β±0.2ms           | 19.1Β±0.3ms          |    1    | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(50)           |
|          | 22.4Β±0.4ms           | 22.2Β±0.4ms          |    0.99 | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(500)          |
|          | 1.27Β±0.09M           | 1.23Β±0M             |    0.97 | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(50)    |
|          | 25Β±0.09M             | 25Β±0.01M            |    1    | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(500)   |
|          | 177Β±2ms              | 175Β±2ms             |    0.99 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(50)         |
|          | 671Β±6ms              | 654Β±8ms             |    0.97 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(500)        |
|          | 1.46Β±0.02M           | 1.62Β±0.01M          |    1.11 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(50)  |
|          | 96.5Β±0.1M            | 96.7Β±0.03M          |    1    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(500) |
|          | 121Β±3ms              | 121Β±1ms             |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(50)                             |
|          | 615Β±6ms              | 583Β±3ms             |    0.95 | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(500)                            |
|          | 1.43Β±0.03M           | 1.5Β±0.03M           |    1.05 | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(50)                      |
|          | 96.5Β±0.02M           | 96.5Β±0.03M          |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(500)                     |
|          | 2.1752849999999997   | 2.1752849999999997  |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(50)                  |
|          | 216.01528499999998   | 216.01528499999998  |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(500)                 |
|          | 6.42Β±0.03ms          | 6.53Β±0.04ms         |    1.02 | plot.AuxSort.time_aux_sort                                                                  |
|          | 74.7Β±3ms             | 77.6Β±4ms            |    1.04 | regridding.CurvilinearRegridding.time_regrid_pic                                            |
|          | 136Β±3M               | 136Β±3M              |    1    | regridding.CurvilinearRegridding.tracemalloc_regrid_pic                                     |
|          | 109Β±4ms              | 111Β±4ms             |    1.02 | regridding.HorizontalChunkedRegridding.time_regrid_area_w                                   |
|          | 55.2Β±5ms             | 65.0Β±1ms            |    1.18 | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid                          |
|          | 107Β±0.1M             | 107Β±0.3M            |    1    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w                            |
|          | 147Β±0.04M            | 147Β±0.04M           |    1    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w_new_grid                   |
|          | 6.95Β±0.1ms           | 6.89Β±0.1ms          |    0.99 | save.NetcdfSave.time_netcdf_save_cube(50, False)                                            |
|          | 122Β±1ms              | 125Β±2ms             |    1.02 | save.NetcdfSave.time_netcdf_save_cube(50, True)                                             |
|          | 45.0Β±0.4ms           | 45.4Β±0.4ms          |    1.01 | save.NetcdfSave.time_netcdf_save_cube(600, False)                                           |
|          | 517Β±5ms              | 521Β±3ms             |    1.01 | save.NetcdfSave.time_netcdf_save_cube(600, True)                                            |
|          | 90.7Β±0.4ns           | 90.5Β±0.6ns          |    1    | save.NetcdfSave.time_netcdf_save_mesh(50, False)                                            |
|          | 102Β±4ms              | 105Β±3ms             |    1.02 | save.NetcdfSave.time_netcdf_save_mesh(50, True)                                             |
|          | 90.1Β±0.4ns           | 91.2Β±0.7ns          |    1.01 | save.NetcdfSave.time_netcdf_save_mesh(600, False)                                           |
|          | 457Β±8ms              | 462Β±6ms             |    1.01 | save.NetcdfSave.time_netcdf_save_mesh(600, True)                                            |
|          | 31.8Β±0.3k            | 30.5Β±0.4k           |    0.96 | save.NetcdfSave.tracemalloc_netcdf_save(50, False)                                          |
|          | 1.75Β±0.1M            | 1.91Β±0.1M           |    1.09 | save.NetcdfSave.tracemalloc_netcdf_save(50, True)                                           |
|          | 31.8Β±0.4k            | 30.5Β±0.4k           |    0.96 | save.NetcdfSave.tracemalloc_netcdf_save(600, False)                                         |
|          | 225Β±20M              | 191Β±20M             |    0.85 | save.NetcdfSave.tracemalloc_netcdf_save(600, True)                                          |
|          | 38.9Β±0.6ms           | 39.1Β±0.4ms          |    1.01 | stats.PearsonR.time_lazy                                                                    |
|          | 9.43Β±0.3ms           | 9.24Β±0.2ms          |    0.98 | stats.PearsonR.time_real                                                                    |
|          | 28.9Β±0.9M            | 30.6Β±1M             |    1.06 | stats.PearsonR.tracemalloc_lazy                                                             |
|          | 18.3Β±0.01M           | 18.3Β±0M             |    1    | stats.PearsonR.tracemalloc_real                                                             |
|          | 27.7Β±0.6ms           | 27.3Β±0.4ms          |    0.99 | trajectory.TrajectoryInterpolation.time_trajectory_linear                                   |
|          | 63.3Β±0.5ms           | 61.8Β±1ms            |    0.98 | trajectory.TrajectoryInterpolation.time_trajectory_nearest                                  |
|          | 17.6Β±0.02M           | 17.6Β±0.04M          |    1    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_linear                            |
|          | 7.75Β±0.02M           | 7.77Β±0.05M          |    1    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_nearest                           |

Benchmarks that have got worse:

| Change   | Before [41414842]    | After [48ea84dd]    |   Ratio | Benchmark (Parameter)                                             |
|----------|----------------------|---------------------|---------|-------------------------------------------------------------------|
| +        | 185Β±2ΞΌs              | 225Β±2ΞΌs             |    1.22 | import_iris.Iris.time__constraints                                |
| +        | 317Β±2ΞΌs              | 389Β±3ΞΌs             |    1.22 | import_iris.Iris.time_aux_factory                                 |
| +        | 168Β±1ΞΌs              | 202Β±2ΞΌs             |    1.21 | import_iris.Iris.time_common_mixin                                |
| +        | 377Β±6ΞΌs              | 456Β±3ΞΌs             |    1.21 | import_iris.Iris.time_coord_systems                               |
| +        | 704Β±10ΞΌs             | 939Β±20ΞΌs            |    1.33 | import_iris.Iris.time_cube                                        |
| +        | 442Β±10ΞΌs             | 537Β±20ΞΌs            |    1.21 | import_iris.Iris.time_fileformats_cf                              |
| +        | 136Β±2ΞΌs              | 168Β±30ΞΌs            |    1.23 | import_iris.Iris.time_fileformats_um__fast_load_structured_fields |
| +        | 176Β±1ΞΌs              | 212Β±4ΞΌs             |    1.21 | import_iris.Iris.time_io_format_picker                            |
| +        | 77.3Β±0.7ΞΌs           | 95.9Β±1ΞΌs            |    1.24 | iterate.IZip.time_izip                                            |
| +        | 7.14Β±0.8ms           | 9.11Β±0.4ms          |    1.28 | load.ugrid.DataRealisation.time_realise_data(200000)              |

Generated by GHA run 21069196234

@ukmo-ccbunney
Copy link
Contributor

@pp-mo - the following changes were made to get the CI working without geovista in the py314 lockfile:

  • pytest:
    • pytest.importorskip calls added to package __init__.py files in the experimental.geovista unit and integration tests. This skips the whole package if geovista is not importable.
  • doctests:
    • autodoc_mock_imports = ["geovista", "pyvista"] added to conf.py to mock the geovista and pyvista imports so that doctest can import all modules without failure.
    • doctest_global_setup extended in conf.py to add a global gv variable that will be None if geovista is not importable.
    • :skipif: gv is None Sphinx directive added in operations.rst and geovista.py to optionally skip the doctests if gv is None. Note: This required adding explicit .. doctest:: blocks in geovista.py

Possible alternative to the above (w.r.t. doctests):

Bill and I have been chatting about the possibility of dynamically updating the docstring (__doc__) of the methods in iris.experimental.geovista.py at import time to specify the example test code (doctest-able) if geovista is available, or a note saying something along the lines of "This function is not available under python3.14" if not.

I've run out of time to explore this further now, but if you think it sounds doable, then I'll have a play next week.

@ukmo-ccbunney ukmo-ccbunney marked this pull request as ready for review January 16, 2026 16:50
@ukmo-ccbunney
Copy link
Contributor

Also, something else to consider is that we only run doctest for the newest python version, so the doctests for geovista are not being run at all at the momnet.

Should we consider adding in a doctests (py3.13) for the time being too to get complete doctest coverage?

@trexfeathers
Copy link
Contributor Author

trexfeathers commented Jan 16, 2026

Should we consider adding in a doctests (py3.13) for the time being too to get complete doctest coverage?

A temporary switch to only Python 3.13 for doctests would be my favoured approach, so long as we've captured it in an issue for future.

@github-actions
Copy link
Contributor

⏱️ Performance Benchmark Report: 0937e7d

Performance shifts
| Change   | Before [41414842]    | After [0937e7d6]    |   Ratio | Benchmark (Parameter)                                              |
|----------|----------------------|---------------------|---------|--------------------------------------------------------------------|
| +        | 184Β±1ΞΌs              | 223Β±2ΞΌs             |    1.21 | import_iris.Iris.time__constraints                                 |
| +        | 315Β±2ΞΌs              | 395Β±6ΞΌs             |    1.25 | import_iris.Iris.time_aux_factory                                  |
| +        | 158Β±0.8ΞΌs            | 190Β±4ΞΌs             |    1.2  | import_iris.Iris.time_common_lenient                               |
| +        | 168Β±2ΞΌs              | 202Β±0.8ΞΌs           |    1.21 | import_iris.Iris.time_common_mixin                                 |
| +        | 379Β±3ΞΌs              | 456Β±2ΞΌs             |    1.2  | import_iris.Iris.time_coord_systems                                |
| +        | 703Β±5ΞΌs              | 930Β±20ΞΌs            |    1.32 | import_iris.Iris.time_cube                                         |
| +        | 176Β±2ΞΌs              | 213Β±2ΞΌs             |    1.21 | import_iris.Iris.time_io_format_picker                             |
| +        | 53.7Β±3ms             | 64.9Β±0.4ms          |    1.21 | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid |
Full benchmark results

Benchmarks that have stayed the same:

| Change   | Before [41414842]    | After [0937e7d6]    |   Ratio | Benchmark (Parameter)                                                                       |
|----------|----------------------|---------------------|---------|---------------------------------------------------------------------------------------------|
|          | 20.6Β±0.5ms           | 20.3Β±0.2ms          |    0.98 | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(False)                              |
|          | 54.2Β±2ms             | 53.4Β±0.8ms          |    0.98 | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(True)                               |
|          | 34.3Β±0.7ms           | 34.3Β±0.4ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(False)                    |
|          | 190Β±9ms              | 189Β±1ms             |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(True)                     |
|          | 22.5Β±0.6ms           | 22.4Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(False)                              |
|          | 33.2Β±0.9ms           | 33.6Β±0.6ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(True)                               |
|          | 22.6Β±0.4ms           | 22.4Β±0.1ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(False)                              |
|          | 32.9Β±0.9ms           | 33.9Β±0.3ms          |    1.03 | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(True)                               |
|          | 20.3Β±0.6ms           | 20.2Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MAX(False)                                |
|          | 45.7Β±2ms             | 46.0Β±0.4ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_MAX(True)                                 |
|          | 132Β±3ms              | 131Β±2ms             |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(False)                            |
|          | 133Β±2ms              | 138Β±2ms             |    1.04 | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(True)                             |
|          | 21.4Β±0.2ms           | 21.1Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(False)                               |
|          | 51.4Β±2ms             | 49.7Β±0.6ms          |    0.97 | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(True)                                |
|          | 22.7Β±0.1ms           | 22.7Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(False)                             |
|          | 59.6Β±1ms             | 59.3Β±0.6ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(True)                              |
|          | 20.3Β±0.3ms           | 20.3Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MIN(False)                                |
|          | 46.6Β±1ms             | 46.2Β±0.5ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MIN(True)                                 |
|          | 1.06Β±0s              | 1.08Β±0.01s          |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(False)                               |
|          | 1.05Β±0.01s           | 1.08Β±0.01s          |    1.03 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(True)                                |
|          | 205Β±4ms              | 217Β±3ms             |    1.06 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(False)                         |
|          | 372Β±6ms              | 388Β±9ms             |    1.04 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(True)                          |
|          | 21.4Β±0.5ms           | 21.5Β±0.4ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(False)                         |
|          | 31.7Β±0.9ms           | 32.0Β±0.6ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(True)                          |
|          | 21.7Β±0.3ms           | 21.5Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_RMS(False)                                |
|          | 61.3Β±2ms             | 60.0Β±0.7ms          |    0.98 | aggregate_collapse.Aggregation.time_aggregated_by_RMS(True)                                 |
|          | 22.5Β±0.5ms           | 22.5Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(False)                            |
|          | 64.3Β±2ms             | 63.9Β±0.5ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(True)                             |
|          | 22.4Β±0.7ms           | 22.3Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(False)                           |
|          | 60.8Β±2ms             | 59.8Β±0.7ms          |    0.98 | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(True)                            |
|          | 7.83Β±0.09ms          | 8.00Β±0.06ms         |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(False)                               |
|          | 24.0Β±0.5ms           | 23.6Β±0.4ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(True)                                |
|          | 19.7Β±0.3ms           | 20.0Β±0.2ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(False)                     |
|          | 148Β±10ms             | 148Β±3ms             |    1    | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(True)                      |
|          | 8.22Β±0.2ms           | 8.30Β±0.1ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(False)                               |
|          | 22.2Β±1ms             | 22.0Β±0.7ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(True)                                |
|          | 8.20Β±0.2ms           | 8.28Β±0.1ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(False)                               |
|          | 22.2Β±0.6ms           | 21.9Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(True)                                |
|          | 7.80Β±0.2ms           | 7.82Β±0.1ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_MAX(False)                                 |
|          | 22.4Β±0.7ms           | 22.2Β±0.4ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_MAX(True)                                  |
|          | 24.9Β±0.5ms           | 24.7Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(False)                             |
|          | 38.4Β±1ms             | 37.5Β±0.5ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(True)                              |
|          | 8.11Β±0.2ms           | 8.15Β±0.1ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(False)                                |
|          | 23.1Β±0.3ms           | 22.7Β±0.2ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(True)                                 |
|          | 9.03Β±0.2ms           | 9.10Β±0.1ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(False)                              |
|          | 25.5Β±0.5ms           | 25.0Β±0.4ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(True)                               |
|          | 7.72Β±0.2ms           | 7.87Β±0.06ms         |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_MIN(False)                                 |
|          | 22.3Β±1ms             | 22.4Β±0.4ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MIN(True)                                  |
|          | 524Β±3ms              | 528Β±1ms             |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(False)                                |
|          | 538Β±3ms              | 539Β±5ms             |    1    | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(True)                                 |
|          | 44.7Β±0.4ms           | 46.4Β±0.4ms          |    1.04 | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(False)                          |
|          | 156Β±9ms              | 157Β±2ms             |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(True)                           |
|          | 8.10Β±0.2ms           | 8.15Β±0.08ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(False)                          |
|          | 21.7Β±0.7ms           | 21.7Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(True)                           |
|          | 8.16Β±0.1ms           | 8.13Β±0.06ms         |    1    | aggregate_collapse.Aggregation.time_collapsed_by_RMS(False)                                 |
|          | 24.4Β±0.9ms           | 24.4Β±0.5ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_RMS(True)                                  |
|          | 8.40Β±0.1ms           | 8.24Β±0.1ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(False)                             |
|          | 24.0Β±0.8ms           | 24.0Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(True)                              |
|          | 8.27Β±0.1ms           | 8.40Β±0.06ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(False)                            |
|          | 23.6Β±0.5ms           | 23.8Β±0.4ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(True)                             |
|          | 21.9Β±0.2ms           | 21.8Β±0.2ms          |    1    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(False)                     |
|          | 85.1Β±3ms             | 85.3Β±0.8ms          |    1    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(True)                      |
|          | 21.9Β±0.7ms           | 21.8Β±0.1ms          |    0.99 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(False)                      |
|          | 94.0Β±2ms             | 97.6Β±0.5ms          |    1.04 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(True)                       |
|          | 20.6Β±0.2ms           | 20.6Β±0.2ms          |    1    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(False)                      |
|          | 55.7Β±2ms             | 56.9Β±1ms            |    1.02 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(True)                       |
|          | 8.34Β±0.1ms           | 8.50Β±0.09ms         |    1.02 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(False)                      |
|          | 29.1Β±1ms             | 28.8Β±0.7ms          |    0.99 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(True)                       |
|          | 8.13Β±0.2ms           | 8.33Β±0.1ms          |    1.02 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(False)                       |
|          | 30.9Β±1ms             | 30.7Β±0.4ms          |    0.99 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(True)                        |
|          | 7.97Β±0.1ms           | 8.08Β±0.07ms         |    1.01 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(False)                       |
|          | 24.5Β±0.9ms           | 24.6Β±0.4ms          |    1.01 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(True)                        |
|          | 218Β±1ms              | 226Β±2ms             |    1.04 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(False)               |
|          | 301Β±10ms             | 309Β±4ms             |    1.03 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(True)                |
|          | 1.10Β±0.01ms          | 1.16Β±0.02ms         |    1.05 | cube.CubeCreation.time_create(False, 'construct')                                           |
|          | 383Β±4ΞΌs              | 391Β±10ΞΌs            |    1.02 | cube.CubeCreation.time_create(False, 'instantiate')                                         |
|          | 1.95Β±0.03ms          | 2.06Β±0.03ms         |    1.06 | cube.CubeCreation.time_create(True, 'construct')                                            |
|          | 1.37Β±0.01ms          | 1.45Β±0.03ms         |    1.06 | cube.CubeCreation.time_create(True, 'instantiate')                                          |
|          | 82.8Β±2ms             | 82.3Β±2ms            |    0.99 | cube.CubeEquality.time_equality(False, False, 'all_equal')                                  |
|          | 24.4Β±0.3ms           | 24.2Β±0.5ms          |    0.99 | cube.CubeEquality.time_equality(False, False, 'coord_inequality')                           |
|          | 96.5Β±1ms             | 95.6Β±2ms            |    0.99 | cube.CubeEquality.time_equality(False, False, 'data_inequality')                            |
|          | 16.5Β±0.1ΞΌs           | 16.9Β±0.2ΞΌs          |    1.03 | cube.CubeEquality.time_equality(False, False, 'metadata_inequality')                        |
|          | 88.6Β±2ms             | 85.1Β±1ms            |    0.96 | cube.CubeEquality.time_equality(False, True, 'all_equal')                                   |
|          | 28.8Β±1ms             | 26.5Β±0.5ms          |    0.92 | cube.CubeEquality.time_equality(False, True, 'coord_inequality')                            |
|          | 103Β±2ms              | 99.8Β±2ms            |    0.97 | cube.CubeEquality.time_equality(False, True, 'data_inequality')                             |
|          | 16.7Β±0.2ΞΌs           | 17.1Β±0.2ΞΌs          |    1.03 | cube.CubeEquality.time_equality(False, True, 'metadata_inequality')                         |
|          | 192Β±4ms              | 188Β±2ms             |    0.98 | cube.CubeEquality.time_equality(True, False, 'all_equal')                                   |
|          | 78.7Β±4ms             | 78.3Β±0.5ms          |    1    | cube.CubeEquality.time_equality(True, False, 'coord_inequality')                            |
|          | 213Β±4ms              | 214Β±2ms             |    1.01 | cube.CubeEquality.time_equality(True, False, 'data_inequality')                             |
|          | 51.4Β±1ΞΌs             | 56.0Β±0.9ΞΌs          |    1.09 | cube.CubeEquality.time_equality(True, False, 'metadata_inequality')                         |
|          | 286Β±7ms              | 279Β±2ms             |    0.98 | cube.CubeEquality.time_equality(True, True, 'all_equal')                                    |
|          | 174Β±4ms              | 170Β±2ms             |    0.98 | cube.CubeEquality.time_equality(True, True, 'coord_inequality')                             |
|          | 318Β±8ms              | 306Β±4ms             |    0.96 | cube.CubeEquality.time_equality(True, True, 'data_inequality')                              |
|          | 357Β±3ΞΌs              | 380Β±9ΞΌs             |    1.06 | cube.CubeEquality.time_equality(True, True, 'metadata_inequality')                          |
|          | 816Β±20ΞΌs             | 961Β±20ΞΌs            |    1.18 | import_iris.Iris.time__concatenate                                                          |
|          | 115Β±1ΞΌs              | 134Β±0.8ΞΌs           |    1.17 | import_iris.Iris.time__data_manager                                                         |
|          | 90.7Β±0.4ΞΌs           | 97.7Β±0.6ΞΌs          |    1.08 | import_iris.Iris.time__deprecation                                                          |
|          | 163Β±4ΞΌs              | 174Β±1ΞΌs             |    1.07 | import_iris.Iris.time__lazy_data                                                            |
|          | 904Β±8ΞΌs              | 1.07Β±0ms            |    1.18 | import_iris.Iris.time__merge                                                                |
|          | 73.9Β±0.7ΞΌs           | 73.2Β±1ΞΌs            |    0.99 | import_iris.Iris.time__representation                                                       |
|          | 606Β±3ΞΌs              | 704Β±6ΞΌs             |    1.16 | import_iris.Iris.time_analysis                                                              |
|          | 140Β±2ΞΌs              | 148Β±0.9ΞΌs           |    1.06 | import_iris.Iris.time_analysis__area_weighted                                               |
|          | 105Β±1ΞΌs              | 106Β±0.7ΞΌs           |    1.01 | import_iris.Iris.time_analysis__grid_angles                                                 |
|          | 248Β±10ΞΌs             | 279Β±2ΞΌs             |    1.13 | import_iris.Iris.time_analysis__interpolation                                               |
|          | 194Β±5ΞΌs              | 211Β±1ΞΌs             |    1.09 | import_iris.Iris.time_analysis__regrid                                                      |
|          | 112Β±1ΞΌs              | 125Β±2ΞΌs             |    1.11 | import_iris.Iris.time_analysis__scipy_interpolate                                           |
|          | 137Β±4ΞΌs              | 137Β±1ΞΌs             |    1    | import_iris.Iris.time_analysis_calculus                                                     |
|          | 322Β±2ΞΌs              | 349Β±2ΞΌs             |    1.08 | import_iris.Iris.time_analysis_cartography                                                  |
|          | 90.2Β±0.7ΞΌs           | 90.8Β±2ΞΌs            |    1.01 | import_iris.Iris.time_analysis_geomerty                                                     |
|          | 210Β±2ΞΌs              | 226Β±2ΞΌs             |    1.08 | import_iris.Iris.time_analysis_maths                                                        |
|          | 94.0Β±0.5ΞΌs           | 93.7Β±1ΞΌs            |    1    | import_iris.Iris.time_analysis_stats                                                        |
|          | 169Β±3ΞΌs              | 192Β±2ΞΌs             |    1.14 | import_iris.Iris.time_analysis_trajectory                                                   |
|          | 79.8Β±0.5ΞΌs           | 81.9Β±0.8ΞΌs          |    1.03 | import_iris.Iris.time_common                                                                |
|          | 1.33Β±0.04ms          | 1.53Β±0.02ms         |    1.15 | import_iris.Iris.time_common_metadata                                                       |
|          | 1.15Β±0.03ms          | 1.26Β±0.01ms         |    1.1  | import_iris.Iris.time_common_resolve                                                        |
|          | 201Β±3ΞΌs              | 222Β±2ΞΌs             |    1.11 | import_iris.Iris.time_config                                                                |
|          | 126Β±2ΞΌs              | 133Β±3ΞΌs             |    1.05 | import_iris.Iris.time_coord_categorisation                                                  |
|          | 769Β±3ΞΌs              | 912Β±5ΞΌs             |    1.19 | import_iris.Iris.time_coords                                                                |
|          | 253Β±3ΞΌs              | 281Β±4ΞΌs             |    1.11 | import_iris.Iris.time_exceptions                                                            |
|          | 73.1Β±0.3ΞΌs           | 75.1Β±0.8ΞΌs          |    1.03 | import_iris.Iris.time_experimental                                                          |
|          | 177Β±0.9ΞΌs            | 178Β±3ΞΌs             |    1.01 | import_iris.Iris.time_fileformats                                                           |
|          | 254Β±2ΞΌs              | 292Β±1ΞΌs             |    1.15 | import_iris.Iris.time_fileformats__ff                                                       |
|          | 2.59Β±0.01ms          | 2.59Β±0.01ms         |    1    | import_iris.Iris.time_fileformats__ff_cross_references                                      |
|          | 77.3Β±0.4ΞΌs           | 75.0Β±1ΞΌs            |    0.97 | import_iris.Iris.time_fileformats__pp_lbproc_pairs                                          |
|          | 112Β±1ΞΌs              | 124Β±0.8ΞΌs           |    1.11 | import_iris.Iris.time_fileformats_abf                                                       |
|          | 440Β±5ΞΌs              | 527Β±2ΞΌs             |    1.2  | import_iris.Iris.time_fileformats_cf                                                        |
|          | 4.74Β±0.1ms           | 4.72Β±0.06ms         |    1    | import_iris.Iris.time_fileformats_dot                                                       |
|          | 71.1Β±0.7ΞΌs           | 69.8Β±2ΞΌs            |    0.98 | import_iris.Iris.time_fileformats_name                                                      |
|          | 250Β±1ΞΌs              | 265Β±2ΞΌs             |    1.06 | import_iris.Iris.time_fileformats_name_loaders                                              |
|          | 113Β±0.7ΞΌs            | 113Β±1ΞΌs             |    1.01 | import_iris.Iris.time_fileformats_netcdf                                                    |
|          | 119Β±0.9ΞΌs            | 134Β±1ΞΌs             |    1.13 | import_iris.Iris.time_fileformats_nimrod                                                    |
|          | 207Β±2ΞΌs              | 208Β±1ΞΌs             |    1.01 | import_iris.Iris.time_fileformats_nimrod_load_rules                                         |
|          | 793Β±10ΞΌs             | 900Β±10ΞΌs            |    1.14 | import_iris.Iris.time_fileformats_pp                                                        |
|          | 177Β±2ΞΌs              | 182Β±2ΞΌs             |    1.03 | import_iris.Iris.time_fileformats_pp_load_rules                                             |
|          | 137Β±0.8ΞΌs            | 135Β±2ΞΌs             |    0.98 | import_iris.Iris.time_fileformats_pp_save_rules                                             |
|          | 536Β±5ΞΌs              | 614Β±6ΞΌs             |    1.15 | import_iris.Iris.time_fileformats_rules                                                     |
|          | 220Β±0.7ΞΌs            | 255Β±1ΞΌs             |    1.16 | import_iris.Iris.time_fileformats_structured_array_identification                           |
|          | 79.7Β±0.7ΞΌs           | 79.7Β±0.9ΞΌs          |    1    | import_iris.Iris.time_fileformats_um                                                        |
|          | 156Β±3ΞΌs              | 169Β±2ΞΌs             |    1.08 | import_iris.Iris.time_fileformats_um__fast_load                                             |
|          | 136Β±1ΞΌs              | 155Β±1ΞΌs             |    1.14 | import_iris.Iris.time_fileformats_um__fast_load_structured_fields                           |
|          | 71.8Β±0.5ΞΌs           | 71.4Β±0.4ΞΌs          |    0.99 | import_iris.Iris.time_fileformats_um__ff_replacement                                        |
|          | 77.5Β±0.6ΞΌs           | 78.2Β±0.9ΞΌs          |    1.01 | import_iris.Iris.time_fileformats_um__optimal_array_structuring                             |
|          | 950Β±3ΞΌs              | 973Β±3ΞΌs             |    1.02 | import_iris.Iris.time_fileformats_um_cf_map                                                 |
|          | 137Β±1ΞΌs              | 143Β±0.9ΞΌs           |    1.04 | import_iris.Iris.time_io                                                                    |
|          | 210Β±1ΞΌs              | 219Β±1ΞΌs             |    1.05 | import_iris.Iris.time_iris                                                                  |
|          | 124Β±5ΞΌs              | 137Β±0.6ΞΌs           |    1.11 | import_iris.Iris.time_iterate                                                               |
|          | 7.99Β±0.09ms          | 8.22Β±0.05ms         |    1.03 | import_iris.Iris.time_palette                                                               |
|          | 1.78Β±0.02ms          | 1.79Β±0.01ms         |    1.01 | import_iris.Iris.time_plot                                                                  |
|          | 217Β±8ΞΌs              | 226Β±2ΞΌs             |    1.04 | import_iris.Iris.time_quickplot                                                             |
|          | 2.18Β±0.08ms          | 2.12Β±0.03ms         |    0.98 | import_iris.Iris.time_std_names                                                             |
|          | 1.81Β±0.02ms          | 1.84Β±0.01ms         |    1.02 | import_iris.Iris.time_symbols                                                               |
|          | 143Β±2ms              | 140Β±1ms             |    0.98 | import_iris.Iris.time_tests                                                                 |
|          | 251Β±2ΞΌs              | 238Β±0.8ΞΌs           |    0.95 | import_iris.Iris.time_third_party_cartopy                                                   |
|          | 5.07Β±0.08ms          | 5.03Β±0.03ms         |    0.99 | import_iris.Iris.time_third_party_cf_units                                                  |
|          | 121Β±3ΞΌs              | 122Β±1ΞΌs             |    1.01 | import_iris.Iris.time_third_party_cftime                                                    |
|          | 2.64Β±0.02ms          | 2.69Β±0.01ms         |    1.02 | import_iris.Iris.time_third_party_matplotlib                                                |
|          | 550Β±3ΞΌs              | 557Β±3ΞΌs             |    1.01 | import_iris.Iris.time_third_party_numpy                                                     |
|          | 167Β±1ΞΌs              | 173Β±3ΞΌs             |    1.04 | import_iris.Iris.time_third_party_scipy                                                     |
|          | 99.2Β±1ΞΌs             | 111Β±1ΞΌs             |    1.12 | import_iris.Iris.time_time                                                                  |
|          | 848Β±5ΞΌs              | 883Β±9ΞΌs             |    1.04 | import_iris.Iris.time_util                                                                  |
|          | 78.5Β±0.8ΞΌs           | 94.0Β±2ΞΌs            |    1.2  | iterate.IZip.time_izip                                                                      |
|          | 9.67Β±0.06ms          | 10.4Β±0.2ms          |    1.08 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'FF')                                  |
|          | 18.8Β±0.3ms           | 18.8Β±0.4ms          |    1    | load.LoadAndRealise.time_load((1280, 960, 5), False, 'NetCDF')                              |
|          | 9.75Β±0.08ms          | 10.2Β±0.1ms          |    1.04 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'PP')                                  |
|          | 9.63Β±0.1ms           | 10.4Β±0.1ms          |    1.08 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'FF')                                   |
|          | 15.7Β±0.4ms           | 15.5Β±0.1ms          |    0.99 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'NetCDF')                               |
|          | 9.73Β±0.05ms          | 10.2Β±0.03ms         |    1.04 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'PP')                                   |
|          | 1.46Β±0.01s           | 1.52Β±0.01s          |    1.04 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'FF')                                    |
|          | 14.6Β±0.1ms           | 14.4Β±0.1ms          |    0.99 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'NetCDF')                                |
|          | 1.48Β±0.01s           | 1.54Β±0.01s          |    1.05 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'PP')                                    |
|          | 1.47Β±0.01s           | 1.54Β±0.01s          |    1.05 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'FF')                                     |
|          | 14.4Β±0.1ms           | 14.4Β±0.2ms          |    1    | load.LoadAndRealise.time_load((2, 2, 1000), True, 'NetCDF')                                 |
|          | 1.48Β±0.01s           | 1.54Β±0.01s          |    1.05 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'PP')                                     |
|          | 5.11Β±0.01ms          | 5.31Β±0.02ms         |    1.04 | load.LoadAndRealise.time_load((50, 50, 2), False, 'FF')                                     |
|          | 14.2Β±0.3ms           | 14.0Β±0.2ms          |    0.99 | load.LoadAndRealise.time_load((50, 50, 2), False, 'NetCDF')                                 |
|          | 5.15Β±0.04ms          | 5.24Β±0.04ms         |    1.02 | load.LoadAndRealise.time_load((50, 50, 2), False, 'PP')                                     |
|          | 5.21Β±0.1ms           | 5.34Β±0.02ms         |    1.03 | load.LoadAndRealise.time_load((50, 50, 2), True, 'FF')                                      |
|          | 14.1Β±0.3ms           | 14.2Β±0.07ms         |    1.01 | load.LoadAndRealise.time_load((50, 50, 2), True, 'NetCDF')                                  |
|          | 5.18Β±0.04ms          | 5.25Β±0.02ms         |    1.01 | load.LoadAndRealise.time_load((50, 50, 2), True, 'PP')                                      |
|          | 23.2Β±1ms             | 27.2Β±0.5ms          |    1.17 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'FF')                               |
|          | 25.9Β±0.5ms           | 25.4Β±0.5ms          |    0.98 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'NetCDF')                           |
|          | 12.7Β±1ms             | 11.7Β±1ms            |    0.92 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'PP')                               |
|          | 27.2Β±2ms             | 28.3Β±2ms            |    1.04 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'FF')                                |
|          | 95.6Β±0.4ms           | 94.8Β±0.5ms          |    0.99 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'NetCDF')                            |
|          | 27.7Β±1ms             | 27.9Β±0.8ms          |    1    | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'PP')                                |
|          | 604Β±8ms              | 604Β±6ms             |    1    | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'FF')                                 |
|          | 5.30Β±0.03ms          | 5.32Β±0.07ms         |    1    | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'NetCDF')                             |
|          | 604Β±3ms              | 603Β±7ms             |    1    | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'PP')                                 |
|          | 615Β±2ms              | 617Β±9ms             |    1    | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'FF')                                  |
|          | 5.49Β±0.2ms           | 5.33Β±0.07ms         |    0.97 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'NetCDF')                              |
|          | 616Β±4ms              | 615Β±5ms             |    1    | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'PP')                                  |
|          | 2.09Β±0.09ms          | 2.08Β±0.05ms         |    0.99 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'FF')                                  |
|          | 5.45Β±0.09ms          | 5.35Β±0.1ms          |    0.98 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'NetCDF')                              |
|          | 2.15Β±0.09ms          | 2.18Β±0.06ms         |    1.02 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'PP')                                  |
|          | 2.08Β±0.05ms          | 2.08Β±0.07ms         |    1    | load.LoadAndRealise.time_realise((50, 50, 2), True, 'FF')                                   |
|          | 5.45Β±0.1ms           | 5.39Β±0.09ms         |    0.99 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'NetCDF')                               |
|          | 2.16Β±0.06ms          | 2.18Β±0.06ms         |    1.01 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'PP')                                   |
|          | 338Β±5ms              | 351Β±6ms             |    1.04 | load.ManyCubes.time_many_cube_load                                                          |
|          | 89.4Β±2ms             | 89.5Β±1ms            |    1    | load.ManyVars.time_many_var_load                                                            |
|          | 9.83Β±0.05ms          | 10.2Β±0.05ms         |    1.04 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'FF')                            |
|          | 9.81Β±0.1ms           | 10.3Β±0.02ms         |    1.06 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'PP')                            |
|          | 1.48Β±0.01s           | 1.54Β±0.02s          |    1.04 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'FF')                              |
|          | 1.49Β±0.01s           | 1.55Β±0.01s          |    1.04 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'PP')                              |
|          | 5.22Β±0.02ms          | 5.32Β±0.05ms         |    1.02 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'FF')                                 |
|          | 5.21Β±0.02ms          | 5.23Β±0.02ms         |    1    | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'PP')                                 |
|          | 8.88Β±0.2ms           | 9.24Β±0.08ms         |    1.04 | load.StructuredFF.time_structured_load((1280, 960, 5), False)                               |
|          | 5.52Β±0.02ms          | 5.66Β±0.1ms          |    1.03 | load.StructuredFF.time_structured_load((1280, 960, 5), True)                                |
|          | 1.48Β±0.02s           | 1.54Β±0.01s          |    1.04 | load.StructuredFF.time_structured_load((2, 2, 1000), False)                                 |
|          | 417Β±5ms              | 422Β±3ms             |    1.01 | load.StructuredFF.time_structured_load((2, 2, 1000), True)                                  |
|          | 4.31Β±0.02ms          | 4.45Β±0.02ms         |    1.03 | load.StructuredFF.time_structured_load((2, 2, 2), False)                                    |
|          | 4.17Β±0.04ms          | 4.29Β±0.05ms         |    1.03 | load.StructuredFF.time_structured_load((2, 2, 2), True)                                     |
|          | 153Β±0.5ms            | 157Β±1ms             |    1.03 | load.TimeConstraint.time_time_constraint(20, 'FF')                                          |
|          | 17.0Β±0.6ms           | 17.1Β±0.1ms          |    1.01 | load.TimeConstraint.time_time_constraint(20, 'NetCDF')                                      |
|          | 156Β±3ms              | 158Β±0.9ms           |    1.02 | load.TimeConstraint.time_time_constraint(20, 'PP')                                          |
|          | 31.1Β±0.1ms           | 32.1Β±0.3ms          |    1.03 | load.TimeConstraint.time_time_constraint(3, 'FF')                                           |
|          | 16.6Β±0.2ms           | 17.0Β±0.09ms         |    1.02 | load.TimeConstraint.time_time_constraint(3, 'NetCDF')                                       |
|          | 31.2Β±0.5ms           | 32.0Β±0.2ms          |    1.03 | load.TimeConstraint.time_time_constraint(3, 'PP')                                           |
|          | 20.7Β±1ms             | 21.2Β±0.3ms          |    1.02 | load.ugrid.BasicLoading.time_load_file(1)                                                   |
|          | 53.9Β±2ms             | 53.8Β±0.3ms          |    1    | load.ugrid.BasicLoading.time_load_file(200000)                                              |
|          | 10.9Β±0.8ms           | 11.1Β±0.2ms          |    1.01 | load.ugrid.BasicLoading.time_load_mesh(1)                                                   |
|          | 20.5Β±2ms             | 20.6Β±0.4ms          |    1.01 | load.ugrid.BasicLoading.time_load_mesh(200000)                                              |
|          | 21.0Β±1ms             | 21.2Β±0.3ms          |    1.01 | load.ugrid.BasicLoadingTime.time_load_file(1)                                               |
|          | 21.8Β±0.9ms           | 21.4Β±0.3ms          |    0.98 | load.ugrid.BasicLoadingTime.time_load_file(200000)                                          |
|          | 11.8Β±0.7ms           | 11.0Β±0.2ms          |    0.93 | load.ugrid.BasicLoadingTime.time_load_mesh(1)                                               |
|          | 15.3Β±0.6ms           | 13.5Β±0.2ms          |    0.88 | load.ugrid.BasicLoadingTime.time_load_mesh(200000)                                          |
|          | 23.3Β±0.4ms           | 23.1Β±0.2ms          |    0.99 | load.ugrid.Callback.time_load_file_callback(1)                                              |
|          | 65.1Β±4ms             | 64.6Β±0.7ms          |    0.99 | load.ugrid.Callback.time_load_file_callback(200000)                                         |
|          | 23.1Β±2ms             | 23.5Β±0.2ms          |    1.02 | load.ugrid.CallbackTime.time_load_file_callback(1)                                          |
|          | 25.0Β±0.8ms           | 24.6Β±0.4ms          |    0.99 | load.ugrid.CallbackTime.time_load_file_callback(200000)                                     |
|          | 5.29Β±0.5ms           | 5.24Β±0.04ms         |    0.99 | load.ugrid.DataRealisation.time_realise_data(10000)                                         |
|          | 8.31Β±1ms             | 8.30Β±0.06ms         |    1    | load.ugrid.DataRealisation.time_realise_data(200000)                                        |
|          | 39.8Β±4ms             | 36.5Β±0.6ms          |    0.92 | load.ugrid.DataRealisationTime.time_realise_data(10000)                                     |
|          | 784Β±10ms             | 769Β±8ms             |    0.98 | load.ugrid.DataRealisationTime.time_realise_data(200000)                                    |
|          | 1.40Β±0.04s           | 1.35Β±0.02s          |    0.97 | merge_concat.Concatenate.time_concatenate(False)                                            |
|          | 444Β±20ms             | 449Β±10ms            |    1.01 | merge_concat.Concatenate.time_concatenate(True)                                             |
|          | 2.42Β±0G              | 2.43Β±0.01G          |    1    | merge_concat.Concatenate.tracemalloc_concatenate(False)                                     |
|          | 110Β±2M               | 120Β±5M              |    1.09 | merge_concat.Concatenate.tracemalloc_concatenate(True)                                      |
|          | 33.2Β±1ms             | 33.5Β±2ms            |    1.01 | merge_concat.Merge.time_merge                                                               |
|          | 126Β±0.03M            | 126Β±0.03M           |    1    | merge_concat.Merge.tracemalloc_merge                                                        |
|          | 358Β±3ns              | 395Β±3ns             |    1.1  | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(50)              |
|          | 229Β±1ms              | 201Β±2ms             |    0.88 | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(500)             |
|          | 772Β±0.5k             | 771Β±0.7k            |    1    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(50)       |
|          | 60.2Β±0M              | 60.2Β±0M             |    1    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(500)      |
|          | 18.9Β±0.2ms           | 19.5Β±0.3ms          |    1.04 | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(50)           |
|          | 22.0Β±0.5ms           | 22.7Β±0.4ms          |    1.03 | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(500)          |
|          | 1.27Β±0.09M           | 1.23Β±0M             |    0.97 | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(50)    |
|          | 25Β±0.09M             | 25Β±0M               |    1    | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(500)   |
|          | 179Β±4ms              | 174Β±1ms             |    0.97 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(50)         |
|          | 669Β±5ms              | 643Β±5ms             |    0.96 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(500)        |
|          | 1.46Β±0.02M           | 1.64Β±0.01M          |    1.12 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(50)  |
|          | 96.5Β±0.03M           | 96.7Β±0.03M          |    1    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(500) |
|          | 118Β±1ms              | 120Β±0.7ms           |    1.01 | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(50)                             |
|          | 607Β±10ms             | 582Β±3ms             |    0.96 | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(500)                            |
|          | 1.41Β±0.03M           | 1.5Β±0.05M           |    1.07 | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(50)                      |
|          | 96.4Β±0.04M           | 96.6Β±0.02M          |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(500)                     |
|          | 2.1752849999999997   | 2.1752849999999997  |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(50)                  |
|          | 216.01528499999998   | 216.01528499999998  |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(500)                 |
|          | 6.46Β±0.2ms           | 6.54Β±0.03ms         |    1.01 | plot.AuxSort.time_aux_sort                                                                  |
|          | 79.9Β±2ms             | 80.3Β±0.8ms          |    1.01 | regridding.CurvilinearRegridding.time_regrid_pic                                            |
|          | 136Β±3M               | 136Β±3M              |    1    | regridding.CurvilinearRegridding.tracemalloc_regrid_pic                                     |
|          | 108Β±6ms              | 111Β±3ms             |    1.03 | regridding.HorizontalChunkedRegridding.time_regrid_area_w                                   |
|          | 107Β±0.1M             | 107Β±0.2M            |    1    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w                            |
|          | 147Β±0.04M            | 147Β±0.04M           |    1    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w_new_grid                   |
|          | 6.67Β±0.5ms           | 6.69Β±0.03ms         |    1    | save.NetcdfSave.time_netcdf_save_cube(50, False)                                            |
|          | 124Β±5ms              | 122Β±1ms             |    0.98 | save.NetcdfSave.time_netcdf_save_cube(50, True)                                             |
|          | 44.9Β±0.7ms           | 44.8Β±0.5ms          |    1    | save.NetcdfSave.time_netcdf_save_cube(600, False)                                           |
|          | 532Β±8ms              | 522Β±5ms             |    0.98 | save.NetcdfSave.time_netcdf_save_cube(600, True)                                            |
|          | 90.6Β±0.3ns           | 94.0Β±0.7ns          |    1.04 | save.NetcdfSave.time_netcdf_save_mesh(50, False)                                            |
|          | 103Β±4ms              | 102Β±1ms             |    0.99 | save.NetcdfSave.time_netcdf_save_mesh(50, True)                                             |
|          | 91.2Β±0.4ns           | 93.6Β±0.6ns          |    1.03 | save.NetcdfSave.time_netcdf_save_mesh(600, False)                                           |
|          | 466Β±6ms              | 463Β±5ms             |    0.99 | save.NetcdfSave.time_netcdf_save_mesh(600, True)                                            |
|          | 31.8Β±0.3k            | 30.4Β±0.3k           |    0.96 | save.NetcdfSave.tracemalloc_netcdf_save(50, False)                                          |
|          | 1.85Β±0.1M            | 1.76Β±0.1M           |    0.95 | save.NetcdfSave.tracemalloc_netcdf_save(50, True)                                           |
|          | 31.9Β±0.4k            | 30.4Β±0.4k           |    0.95 | save.NetcdfSave.tracemalloc_netcdf_save(600, False)                                         |
|          | 208Β±20M              | 208Β±10M             |    1    | save.NetcdfSave.tracemalloc_netcdf_save(600, True)                                          |
|          | 38.6Β±0.7ms           | 38.8Β±0.5ms          |    1    | stats.PearsonR.time_lazy                                                                    |
|          | 9.48Β±0.2ms           | 9.05Β±0.1ms          |    0.95 | stats.PearsonR.time_real                                                                    |
|          | 29.4Β±0.7M            | 30.6Β±2M             |    1.04 | stats.PearsonR.tracemalloc_lazy                                                             |
|          | 18.3Β±0.01M           | 18.3Β±0M             |    1    | stats.PearsonR.tracemalloc_real                                                             |
|          | 27.5Β±0.4ms           | 26.3Β±0.6ms          |    0.96 | trajectory.TrajectoryInterpolation.time_trajectory_linear                                   |
|          | 63.3Β±1ms             | 60.1Β±0.9ms          |    0.95 | trajectory.TrajectoryInterpolation.time_trajectory_nearest                                  |
|          | 17.6Β±0.02M           | 17.6Β±0.04M          |    1    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_linear                            |
|          | 7.75Β±0.02M           | 7.77Β±0.05M          |    1    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_nearest                           |

Benchmarks that have got worse:

| Change   | Before [41414842]    | After [0937e7d6]    |   Ratio | Benchmark (Parameter)                                              |
|----------|----------------------|---------------------|---------|--------------------------------------------------------------------|
| +        | 184Β±1ΞΌs              | 223Β±2ΞΌs             |    1.21 | import_iris.Iris.time__constraints                                 |
| +        | 315Β±2ΞΌs              | 395Β±6ΞΌs             |    1.25 | import_iris.Iris.time_aux_factory                                  |
| +        | 158Β±0.8ΞΌs            | 190Β±4ΞΌs             |    1.2  | import_iris.Iris.time_common_lenient                               |
| +        | 168Β±2ΞΌs              | 202Β±0.8ΞΌs           |    1.21 | import_iris.Iris.time_common_mixin                                 |
| +        | 379Β±3ΞΌs              | 456Β±2ΞΌs             |    1.2  | import_iris.Iris.time_coord_systems                                |
| +        | 703Β±5ΞΌs              | 930Β±20ΞΌs            |    1.32 | import_iris.Iris.time_cube                                         |
| +        | 176Β±2ΞΌs              | 213Β±2ΞΌs             |    1.21 | import_iris.Iris.time_io_format_picker                             |
| +        | 53.7Β±3ms             | 64.9Β±0.4ms          |    1.21 | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid |

Generated by GHA run 21073004028

@github-actions
Copy link
Contributor

⏱️ Performance Benchmark Report: cf25ec3

Performance shifts
| Change   | Before [41414842]    | After [cf25ec31]    |   Ratio | Benchmark (Parameter)                |
|----------|----------------------|---------------------|---------|--------------------------------------|
| +        | 187Β±5ΞΌs              | 225Β±1ΞΌs             |    1.2  | import_iris.Iris.time__constraints   |
| +        | 321Β±5ΞΌs              | 402Β±7ΞΌs             |    1.25 | import_iris.Iris.time_aux_factory    |
| +        | 729Β±20ΞΌs             | 939Β±10ΞΌs            |    1.29 | import_iris.Iris.time_cube           |
| +        | 452Β±20ΞΌs             | 550Β±10ΞΌs            |    1.22 | import_iris.Iris.time_fileformats_cf |
| +        | 77.3Β±0.9ΞΌs           | 93.6Β±0.6ΞΌs          |    1.21 | iterate.IZip.time_izip               |
Full benchmark results

Benchmarks that have stayed the same:

| Change   | Before [41414842]    | After [cf25ec31]    |   Ratio | Benchmark (Parameter)                                                                       |
|----------|----------------------|---------------------|---------|---------------------------------------------------------------------------------------------|
|          | 20.4Β±0.2ms           | 20.6Β±0.1ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(False)                              |
|          | 54.6Β±1ms             | 55.2Β±0.4ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(True)                               |
|          | 34.9Β±0.8ms           | 34.8Β±0.4ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(False)                    |
|          | 195Β±9ms              | 199Β±2ms             |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(True)                     |
|          | 22.5Β±0.6ms           | 22.9Β±0.3ms          |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(False)                              |
|          | 34.1Β±1ms             | 34.7Β±0.4ms          |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(True)                               |
|          | 22.7Β±0.3ms           | 22.8Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(False)                              |
|          | 34.9Β±1ms             | 34.8Β±0.4ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(True)                               |
|          | 20.9Β±0.6ms           | 20.5Β±0.4ms          |    0.98 | aggregate_collapse.Aggregation.time_aggregated_by_MAX(False)                                |
|          | 47.2Β±3ms             | 47.2Β±0.9ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MAX(True)                                 |
|          | 133Β±6ms              | 132Β±3ms             |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(False)                            |
|          | 133Β±4ms              | 136Β±2ms             |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(True)                             |
|          | 21.7Β±0.4ms           | 21.7Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(False)                               |
|          | 51.8Β±1ms             | 51.4Β±0.5ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(True)                                |
|          | 23.4Β±0.5ms           | 22.7Β±0.3ms          |    0.97 | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(False)                             |
|          | 61.5Β±3ms             | 59.8Β±0.7ms          |    0.97 | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(True)                              |
|          | 20.4Β±0.4ms           | 20.4Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MIN(False)                                |
|          | 48.0Β±0.8ms           | 46.7Β±0.8ms          |    0.97 | aggregate_collapse.Aggregation.time_aggregated_by_MIN(True)                                 |
|          | 1.07Β±0.01s           | 1.10Β±0.01s          |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(False)                               |
|          | 1.05Β±0.01s           | 1.09Β±0.01s          |    1.04 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(True)                                |
|          | 212Β±2ms              | 218Β±2ms             |    1.03 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(False)                         |
|          | 374Β±9ms              | 381Β±5ms             |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(True)                          |
|          | 21.9Β±0.4ms           | 21.6Β±0.3ms          |    0.98 | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(False)                         |
|          | 32.8Β±0.8ms           | 33.0Β±0.7ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(True)                          |
|          | 22.2Β±0.2ms           | 21.7Β±0.3ms          |    0.98 | aggregate_collapse.Aggregation.time_aggregated_by_RMS(False)                                |
|          | 60.1Β±2ms             | 60.8Β±1ms            |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_RMS(True)                                 |
|          | 22.9Β±0.4ms           | 22.5Β±0.3ms          |    0.98 | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(False)                            |
|          | 64.2Β±2ms             | 64.4Β±0.6ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(True)                             |
|          | 22.6Β±0.3ms           | 22.5Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(False)                           |
|          | 60.0Β±0.5ms           | 60.0Β±1ms            |    1    | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(True)                            |
|          | 8.01Β±0.08ms          | 7.94Β±0.08ms         |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(False)                               |
|          | 24.9Β±0.4ms           | 24.6Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(True)                                |
|          | 20.4Β±0.2ms           | 20.2Β±0.3ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(False)                     |
|          | 164Β±4ms              | 161Β±4ms             |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(True)                      |
|          | 8.32Β±0.09ms          | 8.31Β±0.1ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(False)                               |
|          | 23.3Β±0.4ms           | 23.0Β±0.4ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(True)                                |
|          | 8.29Β±0.08ms          | 8.27Β±0.05ms         |    1    | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(False)                               |
|          | 23.0Β±0.4ms           | 22.5Β±0.7ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(True)                                |
|          | 7.80Β±0.09ms          | 7.85Β±0.09ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MAX(False)                                 |
|          | 23.7Β±0.5ms           | 23.3Β±0.2ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_MAX(True)                                  |
|          | 25.3Β±0.3ms           | 24.4Β±0.2ms          |    0.97 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(False)                             |
|          | 38.5Β±0.8ms           | 37.5Β±0.7ms          |    0.97 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(True)                              |
|          | 8.03Β±0.1ms           | 8.09Β±0.05ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(False)                                |
|          | 24.2Β±0.5ms           | 23.6Β±0.3ms          |    0.97 | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(True)                                 |
|          | 9.17Β±0.07ms          | 9.09Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(False)                              |
|          | 25.7Β±0.4ms           | 25.6Β±0.4ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(True)                               |
|          | 7.77Β±0.1ms           | 7.84Β±0.08ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MIN(False)                                 |
|          | 23.7Β±0.4ms           | 23.2Β±0.5ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_MIN(True)                                  |
|          | 528Β±4ms              | 529Β±1ms             |    1    | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(False)                                |
|          | 539Β±4ms              | 542Β±3ms             |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(True)                                 |
|          | 45.3Β±0.7ms           | 46.3Β±0.7ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(False)                          |
|          | 170Β±6ms              | 170Β±5ms             |    1    | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(True)                           |
|          | 8.08Β±0.2ms           | 8.15Β±0.1ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(False)                          |
|          | 22.5Β±0.9ms           | 22.5Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(True)                           |
|          | 8.04Β±0.1ms           | 8.22Β±0.05ms         |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_RMS(False)                                 |
|          | 25.4Β±0.8ms           | 25.2Β±0.3ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_RMS(True)                                  |
|          | 8.24Β±0.2ms           | 8.29Β±0.09ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(False)                             |
|          | 25.0Β±0.4ms           | 25.5Β±0.8ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(True)                              |
|          | 8.32Β±0.06ms          | 8.43Β±0.06ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(False)                            |
|          | 24.6Β±0.5ms           | 24.3Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(True)                             |
|          | 22.5Β±0.2ms           | 22.1Β±0.2ms          |    0.98 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(False)                     |
|          | 87.1Β±2ms             | 84.8Β±2ms            |    0.97 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(True)                      |
|          | 22.7Β±0.6ms           | 22.1Β±0.3ms          |    0.97 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(False)                      |
|          | 96.6Β±2ms             | 96.6Β±1ms            |    1    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(True)                       |
|          | 20.9Β±0.2ms           | 21.0Β±0.1ms          |    1    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(False)                      |
|          | 56.7Β±1ms             | 56.9Β±0.8ms          |    1    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(True)                       |
|          | 8.35Β±0.07ms          | 8.35Β±0.06ms         |    1    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(False)                      |
|          | 30.2Β±0.6ms           | 29.9Β±0.5ms          |    0.99 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(True)                       |
|          | 8.31Β±0.09ms          | 8.28Β±0.08ms         |    1    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(False)                       |
|          | 31.4Β±0.8ms           | 31.4Β±0.4ms          |    1    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(True)                        |
|          | 7.98Β±0.1ms           | 8.09Β±0.1ms          |    1.01 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(False)                       |
|          | 25.3Β±0.5ms           | 25.5Β±0.4ms          |    1.01 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(True)                        |
|          | 220Β±3ms              | 228Β±2ms             |    1.04 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(False)               |
|          | 320Β±8ms              | 320Β±3ms             |    1    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(True)                |
|          | 1.10Β±0.01ms          | 1.15Β±0.02ms         |    1.04 | cube.CubeCreation.time_create(False, 'construct')                                           |
|          | 376Β±4ΞΌs              | 398Β±5ΞΌs             |    1.06 | cube.CubeCreation.time_create(False, 'instantiate')                                         |
|          | 1.91Β±0.01ms          | 2.02Β±0.02ms         |    1.05 | cube.CubeCreation.time_create(True, 'construct')                                            |
|          | 1.39Β±0.02ms          | 1.43Β±0.01ms         |    1.03 | cube.CubeCreation.time_create(True, 'instantiate')                                          |
|          | 85.8Β±2ms             | 83.1Β±1ms            |    0.97 | cube.CubeEquality.time_equality(False, False, 'all_equal')                                  |
|          | 24.8Β±0.6ms           | 24.8Β±1ms            |    1    | cube.CubeEquality.time_equality(False, False, 'coord_inequality')                           |
|          | 98.2Β±1ms             | 97.3Β±2ms            |    0.99 | cube.CubeEquality.time_equality(False, False, 'data_inequality')                            |
|          | 16.4Β±0.1ΞΌs           | 16.9Β±0.3ΞΌs          |    1.03 | cube.CubeEquality.time_equality(False, False, 'metadata_inequality')                        |
|          | 90.9Β±2ms             | 88.8Β±1ms            |    0.98 | cube.CubeEquality.time_equality(False, True, 'all_equal')                                   |
|          | 29.0Β±0.8ms           | 27.1Β±0.4ms          |    0.93 | cube.CubeEquality.time_equality(False, True, 'coord_inequality')                            |
|          | 104Β±1ms              | 102Β±2ms             |    0.99 | cube.CubeEquality.time_equality(False, True, 'data_inequality')                             |
|          | 16.5Β±0.2ΞΌs           | 17.0Β±0.3ΞΌs          |    1.03 | cube.CubeEquality.time_equality(False, True, 'metadata_inequality')                         |
|          | 197Β±5ms              | 196Β±4ms             |    0.99 | cube.CubeEquality.time_equality(True, False, 'all_equal')                                   |
|          | 84.3Β±2ms             | 83.3Β±2ms            |    0.99 | cube.CubeEquality.time_equality(True, False, 'coord_inequality')                            |
|          | 226Β±3ms              | 224Β±4ms             |    0.99 | cube.CubeEquality.time_equality(True, False, 'data_inequality')                             |
|          | 50.5Β±0.6ΞΌs           | 54.1Β±0.8ΞΌs          |    1.07 | cube.CubeEquality.time_equality(True, False, 'metadata_inequality')                         |
|          | 302Β±3ms              | 298Β±7ms             |    0.99 | cube.CubeEquality.time_equality(True, True, 'all_equal')                                    |
|          | 185Β±6ms              | 184Β±4ms             |    0.99 | cube.CubeEquality.time_equality(True, True, 'coord_inequality')                             |
|          | 329Β±4ms              | 324Β±9ms             |    0.98 | cube.CubeEquality.time_equality(True, True, 'data_inequality')                              |
|          | 361Β±3ΞΌs              | 376Β±3ΞΌs             |    1.04 | cube.CubeEquality.time_equality(True, True, 'metadata_inequality')                          |
|          | 812Β±6ΞΌs              | 951Β±10ΞΌs            |    1.17 | import_iris.Iris.time__concatenate                                                          |
|          | 116Β±5ΞΌs              | 135Β±1ΞΌs             |    1.17 | import_iris.Iris.time__data_manager                                                         |
|          | 92.2Β±1ΞΌs             | 99.8Β±1ΞΌs            |    1.08 | import_iris.Iris.time__deprecation                                                          |
|          | 167Β±3ΞΌs              | 175Β±2ΞΌs             |    1.04 | import_iris.Iris.time__lazy_data                                                            |
|          | 899Β±10ΞΌs             | 1.07Β±0.01ms         |    1.19 | import_iris.Iris.time__merge                                                                |
|          | 73.9Β±0.5ΞΌs           | 74.1Β±0.6ΞΌs          |    1    | import_iris.Iris.time__representation                                                       |
|          | 614Β±10ΞΌs             | 709Β±5ΞΌs             |    1.15 | import_iris.Iris.time_analysis                                                              |
|          | 141Β±1ΞΌs              | 150Β±4ΞΌs             |    1.06 | import_iris.Iris.time_analysis__area_weighted                                               |
|          | 107Β±0.9ΞΌs            | 105Β±0.4ΞΌs           |    0.98 | import_iris.Iris.time_analysis__grid_angles                                                 |
|          | 247Β±2ΞΌs              | 281Β±5ΞΌs             |    1.14 | import_iris.Iris.time_analysis__interpolation                                               |
|          | 198Β±2ΞΌs              | 214Β±2ΞΌs             |    1.08 | import_iris.Iris.time_analysis__regrid                                                      |
|          | 112Β±0.9ΞΌs            | 125Β±1ΞΌs             |    1.12 | import_iris.Iris.time_analysis__scipy_interpolate                                           |
|          | 138Β±3ΞΌs              | 135Β±1ΞΌs             |    0.98 | import_iris.Iris.time_analysis_calculus                                                     |
|          | 324Β±2ΞΌs              | 347Β±4ΞΌs             |    1.07 | import_iris.Iris.time_analysis_cartography                                                  |
|          | 91.1Β±2ΞΌs             | 91.0Β±0.7ΞΌs          |    1    | import_iris.Iris.time_analysis_geomerty                                                     |
|          | 213Β±3ΞΌs              | 227Β±4ΞΌs             |    1.06 | import_iris.Iris.time_analysis_maths                                                        |
|          | 94.3Β±1ΞΌs             | 93.2Β±1ΞΌs            |    0.99 | import_iris.Iris.time_analysis_stats                                                        |
|          | 171Β±0.9ΞΌs            | 192Β±1ΞΌs             |    1.12 | import_iris.Iris.time_analysis_trajectory                                                   |
|          | 82.0Β±1ΞΌs             | 79.3Β±1ΞΌs            |    0.97 | import_iris.Iris.time_common                                                                |
|          | 164Β±2ΞΌs              | 189Β±1ΞΌs             |    1.15 | import_iris.Iris.time_common_lenient                                                        |
|          | 1.36Β±0.02ms          | 1.55Β±0.03ms         |    1.14 | import_iris.Iris.time_common_metadata                                                       |
|          | 171Β±4ΞΌs              | 203Β±2ΞΌs             |    1.18 | import_iris.Iris.time_common_mixin                                                          |
|          | 1.16Β±0.01ms          | 1.27Β±0.01ms         |    1.09 | import_iris.Iris.time_common_resolve                                                        |
|          | 199Β±2ΞΌs              | 219Β±2ΞΌs             |    1.1  | import_iris.Iris.time_config                                                                |
|          | 128Β±0.6ΞΌs            | 131Β±0.3ΞΌs           |    1.03 | import_iris.Iris.time_coord_categorisation                                                  |
|          | 393Β±10ΞΌs             | 458Β±1ΞΌs             |    1.16 | import_iris.Iris.time_coord_systems                                                         |
|          | 787Β±10ΞΌs             | 904Β±10ΞΌs            |    1.15 | import_iris.Iris.time_coords                                                                |
|          | 260Β±4ΞΌs              | 284Β±2ΞΌs             |    1.09 | import_iris.Iris.time_exceptions                                                            |
|          | 74.7Β±0.9ΞΌs           | 75.1Β±0.9ΞΌs          |    1.01 | import_iris.Iris.time_experimental                                                          |
|          | 178Β±1ΞΌs              | 180Β±3ΞΌs             |    1.01 | import_iris.Iris.time_fileformats                                                           |
|          | 258Β±6ΞΌs              | 291Β±2ΞΌs             |    1.13 | import_iris.Iris.time_fileformats__ff                                                       |
|          | 2.61Β±0.05ms          | 2.61Β±0.02ms         |    1    | import_iris.Iris.time_fileformats__ff_cross_references                                      |
|          | 75.5Β±0.6ΞΌs           | 74.5Β±1ΞΌs            |    0.99 | import_iris.Iris.time_fileformats__pp_lbproc_pairs                                          |
|          | 112Β±1ΞΌs              | 125Β±5ΞΌs             |    1.12 | import_iris.Iris.time_fileformats_abf                                                       |
|          | 4.76Β±0.2ms           | 4.81Β±0.06ms         |    1.01 | import_iris.Iris.time_fileformats_dot                                                       |
|          | 71.5Β±2ΞΌs             | 69.3Β±0.5ΞΌs          |    0.97 | import_iris.Iris.time_fileformats_name                                                      |
|          | 253Β±4ΞΌs              | 265Β±2ΞΌs             |    1.05 | import_iris.Iris.time_fileformats_name_loaders                                              |
|          | 113Β±0.8ΞΌs            | 114Β±1ΞΌs             |    1    | import_iris.Iris.time_fileformats_netcdf                                                    |
|          | 122Β±1ΞΌs              | 130Β±0.4ΞΌs           |    1.07 | import_iris.Iris.time_fileformats_nimrod                                                    |
|          | 215Β±3ΞΌs              | 208Β±1ΞΌs             |    0.97 | import_iris.Iris.time_fileformats_nimrod_load_rules                                         |
|          | 816Β±20ΞΌs             | 897Β±2ΞΌs             |    1.1  | import_iris.Iris.time_fileformats_pp                                                        |
|          | 182Β±4ΞΌs              | 175Β±2ΞΌs             |    0.96 | import_iris.Iris.time_fileformats_pp_load_rules                                             |
|          | 138Β±1ΞΌs              | 135Β±1ΞΌs             |    0.98 | import_iris.Iris.time_fileformats_pp_save_rules                                             |
|          | 541Β±6ΞΌs              | 601Β±10ΞΌs            |    1.11 | import_iris.Iris.time_fileformats_rules                                                     |
|          | 224Β±3ΞΌs              | 252Β±7ΞΌs             |    1.13 | import_iris.Iris.time_fileformats_structured_array_identification                           |
|          | 79.9Β±0.8ΞΌs           | 78.7Β±0.4ΞΌs          |    0.98 | import_iris.Iris.time_fileformats_um                                                        |
|          | 159Β±1ΞΌs              | 171Β±3ΞΌs             |    1.08 | import_iris.Iris.time_fileformats_um__fast_load                                             |
|          | 144Β±3ΞΌs              | 157Β±0.8ΞΌs           |    1.09 | import_iris.Iris.time_fileformats_um__fast_load_structured_fields                           |
|          | 71.9Β±1ΞΌs             | 71.5Β±0.7ΞΌs          |    0.99 | import_iris.Iris.time_fileformats_um__ff_replacement                                        |
|          | 78.7Β±1ΞΌs             | 77.4Β±0.5ΞΌs          |    0.98 | import_iris.Iris.time_fileformats_um__optimal_array_structuring                             |
|          | 949Β±10ΞΌs             | 972Β±4ΞΌs             |    1.02 | import_iris.Iris.time_fileformats_um_cf_map                                                 |
|          | 138Β±1ΞΌs              | 143Β±1ΞΌs             |    1.03 | import_iris.Iris.time_io                                                                    |
|          | 179Β±3ΞΌs              | 209Β±2ΞΌs             |    1.17 | import_iris.Iris.time_io_format_picker                                                      |
|          | 217Β±3ΞΌs              | 219Β±2ΞΌs             |    1.01 | import_iris.Iris.time_iris                                                                  |
|          | 127Β±2ΞΌs              | 138Β±1ΞΌs             |    1.09 | import_iris.Iris.time_iterate                                                               |
|          | 8.26Β±0.05ms          | 8.20Β±0.1ms          |    0.99 | import_iris.Iris.time_palette                                                               |
|          | 1.81Β±0.03ms          | 1.79Β±0.01ms         |    0.99 | import_iris.Iris.time_plot                                                                  |
|          | 216Β±1ΞΌs              | 233Β±4ΞΌs             |    1.08 | import_iris.Iris.time_quickplot                                                             |
|          | 2.29Β±0.07ms          | 2.18Β±0.01ms         |    0.95 | import_iris.Iris.time_std_names                                                             |
|          | 1.84Β±0.01ms          | 1.85Β±0.01ms         |    1.01 | import_iris.Iris.time_symbols                                                               |
|          | 40.5Β±0.9ms           | 41.1Β±1ms            |    1.01 | import_iris.Iris.time_tests                                                                 |
|          | 253Β±1ΞΌs              | 239Β±1ΞΌs             |    0.94 | import_iris.Iris.time_third_party_cartopy                                                   |
|          | 5.18Β±0.1ms           | 5.27Β±0.09ms         |    1.02 | import_iris.Iris.time_third_party_cf_units                                                  |
|          | 121Β±2ΞΌs              | 121Β±0.7ΞΌs           |    1    | import_iris.Iris.time_third_party_cftime                                                    |
|          | 2.70Β±0.05ms          | 2.73Β±0.02ms         |    1.01 | import_iris.Iris.time_third_party_matplotlib                                                |
|          | 550Β±10ΞΌs             | 554Β±6ΞΌs             |    1.01 | import_iris.Iris.time_third_party_numpy                                                     |
|          | 166Β±1ΞΌs              | 171Β±2ΞΌs             |    1.03 | import_iris.Iris.time_third_party_scipy                                                     |
|          | 99.3Β±0.9ΞΌs           | 113Β±2ΞΌs             |    1.13 | import_iris.Iris.time_time                                                                  |
|          | 858Β±10ΞΌs             | 877Β±10ΞΌs            |    1.02 | import_iris.Iris.time_util                                                                  |
|          | 9.81Β±0.05ms          | 10.4Β±0.2ms          |    1.06 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'FF')                                  |
|          | 19.2Β±0.4ms           | 19.8Β±0.6ms          |    1.03 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'NetCDF')                              |
|          | 9.99Β±0.08ms          | 10.3Β±0.5ms          |    1.03 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'PP')                                  |
|          | 9.82Β±0.2ms           | 10.3Β±0.1ms          |    1.05 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'FF')                                   |
|          | 16.2Β±0.5ms           | 16.1Β±0.5ms          |    1    | load.LoadAndRealise.time_load((1280, 960, 5), True, 'NetCDF')                               |
|          | 9.85Β±0.06ms          | 10.4Β±0.4ms          |    1.06 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'PP')                                   |
|          | 1.49Β±0.02s           | 1.55Β±0.01s          |    1.04 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'FF')                                    |
|          | 15.4Β±0.3ms           | 15.1Β±0.4ms          |    0.98 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'NetCDF')                                |
|          | 1.52Β±0.02s           | 1.58Β±0.01s          |    1.04 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'PP')                                    |
|          | 1.49Β±0.01s           | 1.56Β±0.01s          |    1.05 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'FF')                                     |
|          | 15.2Β±0.6ms           | 15.0Β±0.2ms          |    0.99 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'NetCDF')                                 |
|          | 1.51Β±0.01s           | 1.56Β±0.01s          |    1.03 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'PP')                                     |
|          | 5.27Β±0.03ms          | 5.44Β±0.08ms         |    1.03 | load.LoadAndRealise.time_load((50, 50, 2), False, 'FF')                                     |
|          | 14.8Β±0.9ms           | 15.2Β±0.7ms          |    1.03 | load.LoadAndRealise.time_load((50, 50, 2), False, 'NetCDF')                                 |
|          | 5.22Β±0.02ms          | 5.25Β±0.2ms          |    1.01 | load.LoadAndRealise.time_load((50, 50, 2), False, 'PP')                                     |
|          | 5.24Β±0.09ms          | 5.48Β±0.1ms          |    1.05 | load.LoadAndRealise.time_load((50, 50, 2), True, 'FF')                                      |
|          | 15.0Β±0.5ms           | 15.5Β±0.4ms          |    1.04 | load.LoadAndRealise.time_load((50, 50, 2), True, 'NetCDF')                                  |
|          | 5.18Β±0.03ms          | 5.41Β±0.1ms          |    1.04 | load.LoadAndRealise.time_load((50, 50, 2), True, 'PP')                                      |
|          | 23.2Β±1ms             | 26.7Β±0.6ms          |    1.15 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'FF')                               |
|          | 27.0Β±0.6ms           | 26.6Β±0.7ms          |    0.99 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'NetCDF')                           |
|          | 11.9Β±0.9ms           | 12.9Β±2ms            |    1.09 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'PP')                               |
|          | 28.7Β±1ms             | 28.6Β±1ms            |    1    | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'FF')                                |
|          | 97.4Β±2ms             | 97.7Β±0.9ms          |    1    | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'NetCDF')                            |
|          | 27.7Β±1ms             | 27.6Β±1ms            |    1    | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'PP')                                |
|          | 597Β±7ms              | 607Β±7ms             |    1.02 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'FF')                                 |
|          | 5.54Β±0.4ms           | 5.76Β±0.4ms          |    1.04 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'NetCDF')                             |
|          | 598Β±6ms              | 602Β±6ms             |    1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'PP')                                 |
|          | 605Β±7ms              | 619Β±6ms             |    1.02 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'FF')                                  |
|          | 5.95Β±0.4ms           | 5.81Β±0.2ms          |    0.98 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'NetCDF')                              |
|          | 603Β±7ms              | 614Β±3ms             |    1.02 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'PP')                                  |
|          | 2.17Β±0.07ms          | 2.24Β±0.07ms         |    1.03 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'FF')                                  |
|          | 6.20Β±0.3ms           | 5.90Β±0.3ms          |    0.95 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'NetCDF')                              |
|          | 2.03Β±0.05ms          | 2.15Β±0.1ms          |    1.06 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'PP')                                  |
|          | 2.14Β±0.07ms          | 2.15Β±0.1ms          |    1    | load.LoadAndRealise.time_realise((50, 50, 2), True, 'FF')                                   |
|          | 5.84Β±0.5ms           | 5.98Β±0.2ms          |    1.02 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'NetCDF')                               |
|          | 2.14Β±0.07ms          | 2.11Β±0.05ms         |    0.99 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'PP')                                   |
|          | 346Β±6ms              | 356Β±4ms             |    1.03 | load.ManyCubes.time_many_cube_load                                                          |
|          | 89.6Β±2ms             | 92.5Β±1ms            |    1.03 | load.ManyVars.time_many_var_load                                                            |
|          | 9.89Β±0.1ms           | 10.4Β±0.1ms          |    1.05 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'FF')                            |
|          | 9.94Β±0.2ms           | 10.5Β±0.3ms          |    1.06 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'PP')                            |
|          | 1.50Β±0.01s           | 1.58Β±0.01s          |    1.05 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'FF')                              |
|          | 1.50Β±0.02s           | 1.60Β±0.01s          |    1.07 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'PP')                              |
|          | 5.24Β±0.2ms           | 5.36Β±0.05ms         |    1.02 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'FF')                                 |
|          | 5.23Β±0.04ms          | 5.32Β±0.06ms         |    1.02 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'PP')                                 |
|          | 8.87Β±0.1ms           | 9.44Β±0.06ms         |    1.06 | load.StructuredFF.time_structured_load((1280, 960, 5), False)                               |
|          | 5.51Β±0.2ms           | 5.85Β±0.1ms          |    1.06 | load.StructuredFF.time_structured_load((1280, 960, 5), True)                                |
|          | 1.47Β±0.01s           | 1.56Β±0.01s          |    1.06 | load.StructuredFF.time_structured_load((2, 2, 1000), False)                                 |
|          | 419Β±3ms              | 438Β±6ms             |    1.05 | load.StructuredFF.time_structured_load((2, 2, 1000), True)                                  |
|          | 4.34Β±0.03ms          | 4.55Β±0.05ms         |    1.05 | load.StructuredFF.time_structured_load((2, 2, 2), False)                                    |
|          | 4.15Β±0.02ms          | 4.30Β±0.03ms         |    1.04 | load.StructuredFF.time_structured_load((2, 2, 2), True)                                     |
|          | 155Β±1ms              | 162Β±2ms             |    1.04 | load.TimeConstraint.time_time_constraint(20, 'FF')                                          |
|          | 17.5Β±0.4ms           | 18.8Β±0.2ms          |    1.07 | load.TimeConstraint.time_time_constraint(20, 'NetCDF')                                      |
|          | 157Β±1ms              | 164Β±2ms             |    1.04 | load.TimeConstraint.time_time_constraint(20, 'PP')                                          |
|          | 31.0Β±0.7ms           | 33.2Β±0.4ms          |    1.07 | load.TimeConstraint.time_time_constraint(3, 'FF')                                           |
|          | 16.9Β±0.9ms           | 18.0Β±0.7ms          |    1.07 | load.TimeConstraint.time_time_constraint(3, 'NetCDF')                                       |
|          | 31.2Β±0.9ms           | 32.8Β±0.5ms          |    1.05 | load.TimeConstraint.time_time_constraint(3, 'PP')                                           |
|          | 22.9Β±1ms             | 23.1Β±0.2ms          |    1.01 | load.ugrid.BasicLoading.time_load_file(1)                                                   |
|          | 53.8Β±0.8ms           | 57.7Β±0.9ms          |    1.07 | load.ugrid.BasicLoading.time_load_file(200000)                                              |
|          | 11.6Β±0.4ms           | 12.1Β±0.5ms          |    1.05 | load.ugrid.BasicLoading.time_load_mesh(1)                                                   |
|          | 21.9Β±0.8ms           | 23.1Β±0.5ms          |    1.05 | load.ugrid.BasicLoading.time_load_mesh(200000)                                              |
|          | 22.3Β±0.4ms           | 22.8Β±0.7ms          |    1.02 | load.ugrid.BasicLoadingTime.time_load_file(1)                                               |
|          | 22.9Β±0.3ms           | 23.5Β±0.4ms          |    1.03 | load.ugrid.BasicLoadingTime.time_load_file(200000)                                          |
|          | 11.7Β±0.4ms           | 11.9Β±0.5ms          |    1.01 | load.ugrid.BasicLoadingTime.time_load_mesh(1)                                               |
|          | 14.8Β±0.4ms           | 15.3Β±0.3ms          |    1.04 | load.ugrid.BasicLoadingTime.time_load_mesh(200000)                                          |
|          | 24.1Β±0.5ms           | 25.2Β±0.4ms          |    1.04 | load.ugrid.Callback.time_load_file_callback(1)                                              |
|          | 66.7Β±0.8ms           | 69.1Β±1ms            |    1.04 | load.ugrid.Callback.time_load_file_callback(200000)                                         |
|          | 24.4Β±0.7ms           | 26.0Β±0.4ms          |    1.06 | load.ugrid.CallbackTime.time_load_file_callback(1)                                          |
|          | 25.6Β±0.9ms           | 27.4Β±0.3ms          |    1.07 | load.ugrid.CallbackTime.time_load_file_callback(200000)                                     |
|          | 6.03Β±0.1ms           | 6.19Β±0.1ms          |    1.03 | load.ugrid.DataRealisation.time_realise_data(10000)                                         |
|          | 8.22Β±0.9ms           | 9.27Β±0.1ms          |    1.13 | load.ugrid.DataRealisation.time_realise_data(200000)                                        |
|          | 42.8Β±2ms             | 43.0Β±1ms            |    1.01 | load.ugrid.DataRealisationTime.time_realise_data(10000)                                     |
|          | 775Β±8ms              | 784Β±5ms             |    1.01 | load.ugrid.DataRealisationTime.time_realise_data(200000)                                    |
|          | 1.38Β±0.03s           | 1.42Β±0.04s          |    1.03 | merge_concat.Concatenate.time_concatenate(False)                                            |
|          | 443Β±7ms              | 447Β±10ms            |    1.01 | merge_concat.Concatenate.time_concatenate(True)                                             |
|          | 2.42Β±0G              | 2.43Β±0.01G          |    1    | merge_concat.Concatenate.tracemalloc_concatenate(False)                                     |
|          | 110Β±2M               | 120Β±7M              |    1.09 | merge_concat.Concatenate.tracemalloc_concatenate(True)                                      |
|          | 34.4Β±1ms             | 33.8Β±1ms            |    0.98 | merge_concat.Merge.time_merge                                                               |
|          | 126Β±0.03M            | 126Β±0.03M           |    1    | merge_concat.Merge.tracemalloc_merge                                                        |
|          | 361Β±4ns              | 380Β±4ns             |    1.05 | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(50)              |
|          | 229Β±2ms              | 202Β±2ms             |    0.88 | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(500)             |
|          | 771Β±0.5k             | 771Β±0.6k            |    1    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(50)       |
|          | 60.2Β±0M              | 60.2Β±0M             |    1    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(500)      |
|          | 18.9Β±0.3ms           | 20.4Β±0.6ms          |    1.08 | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(50)           |
|          | 22.4Β±0.5ms           | 23.2Β±0.4ms          |    1.04 | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(500)          |
|          | 1.27Β±0.09M           | 1.23Β±0M             |    0.97 | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(50)    |
|          | 25Β±0.09M             | 25Β±0M               |    1    | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(500)   |
|          | 185Β±6ms              | 191Β±6ms             |    1.03 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(50)         |
|          | 685Β±10ms             | 672Β±6ms             |    0.98 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(500)        |
|          | 1.48Β±0.02M           | 1.62Β±0.03M          |    1.09 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(50)  |
|          | 96.5Β±0.03M           | 96.7Β±0.04M          |    1    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(500) |
|          | 124Β±2ms              | 133Β±5ms             |    1.07 | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(50)                             |
|          | 621Β±3ms              | 605Β±6ms             |    0.97 | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(500)                            |
|          | 1.43Β±0.05M           | 1.48Β±0.04M          |    1.04 | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(50)                      |
|          | 96.5Β±0.02M           | 96.5Β±0.02M          |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(500)                     |
|          | 2.1752849999999997   | 2.1752849999999997  |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(50)                  |
|          | 216.01528499999998   | 216.01528499999998  |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(500)                 |
|          | 6.54Β±0.07ms          | 6.74Β±0.1ms          |    1.03 | plot.AuxSort.time_aux_sort                                                                  |
|          | 78.4Β±3ms             | 80.9Β±1ms            |    1.03 | regridding.CurvilinearRegridding.time_regrid_pic                                            |
|          | 136Β±3M               | 136Β±3M              |    1    | regridding.CurvilinearRegridding.tracemalloc_regrid_pic                                     |
|          | 107Β±7ms              | 110Β±7ms             |    1.03 | regridding.HorizontalChunkedRegridding.time_regrid_area_w                                   |
|          | 55.3Β±5ms             | 65.7Β±0.5ms          |    1.19 | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid                          |
|          | 107Β±0.09M            | 107Β±0.2M            |    1    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w                            |
|          | 147Β±0.04M            | 147Β±0.04M           |    1    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w_new_grid                   |
|          | 7.37Β±0.3ms           | 7.69Β±0.2ms          |    1.04 | save.NetcdfSave.time_netcdf_save_cube(50, False)                                            |
|          | 127Β±4ms              | 131Β±3ms             |    1.04 | save.NetcdfSave.time_netcdf_save_cube(50, True)                                             |
|          | 45.4Β±0.5ms           | 46.3Β±0.6ms          |    1.02 | save.NetcdfSave.time_netcdf_save_cube(600, False)                                           |
|          | 529Β±6ms              | 537Β±6ms             |    1.02 | save.NetcdfSave.time_netcdf_save_cube(600, True)                                            |
|          | 90.2Β±0.4ns           | 90.1Β±0.6ns          |    1    | save.NetcdfSave.time_netcdf_save_mesh(50, False)                                            |
|          | 106Β±4ms              | 110Β±1ms             |    1.04 | save.NetcdfSave.time_netcdf_save_mesh(50, True)                                             |
|          | 90.5Β±0.6ns           | 90.8Β±0.6ns          |    1    | save.NetcdfSave.time_netcdf_save_mesh(600, False)                                           |
|          | 467Β±6ms              | 477Β±6ms             |    1.02 | save.NetcdfSave.time_netcdf_save_mesh(600, True)                                            |
|          | 31.8Β±0.3k            | 30.4Β±0.4k           |    0.96 | save.NetcdfSave.tracemalloc_netcdf_save(50, False)                                          |
|          | 1.82Β±0.1M            | 1.97Β±0.2M           |    1.08 | save.NetcdfSave.tracemalloc_netcdf_save(50, True)                                           |
|          | 31.8Β±0.4k            | 30.3Β±0.5k           |    0.95 | save.NetcdfSave.tracemalloc_netcdf_save(600, False)                                         |
|          | 190Β±20M              | 190Β±9M              |    1    | save.NetcdfSave.tracemalloc_netcdf_save(600, True)                                          |
|          | 38.2Β±0.7ms           | 40.4Β±0.9ms          |    1.06 | stats.PearsonR.time_lazy                                                                    |
|          | 9.53Β±0.3ms           | 9.85Β±0.4ms          |    1.03 | stats.PearsonR.time_real                                                                    |
|          | 29.5Β±1M              | 31Β±1M               |    1.05 | stats.PearsonR.tracemalloc_lazy                                                             |
|          | 18.3Β±0.01M           | 18.3Β±0M             |    1    | stats.PearsonR.tracemalloc_real                                                             |
|          | 27.8Β±0.9ms           | 28.9Β±0.8ms          |    1.04 | trajectory.TrajectoryInterpolation.time_trajectory_linear                                   |
|          | 63.9Β±0.6ms           | 63.9Β±0.4ms          |    1    | trajectory.TrajectoryInterpolation.time_trajectory_nearest                                  |
|          | 17.6Β±0.02M           | 17.6Β±0.04M          |    1    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_linear                            |
|          | 7.75Β±0.02M           | 7.77Β±0.05M          |    1    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_nearest                           |

Benchmarks that have got worse:

| Change   | Before [41414842]    | After [cf25ec31]    |   Ratio | Benchmark (Parameter)                |
|----------|----------------------|---------------------|---------|--------------------------------------|
| +        | 187Β±5ΞΌs              | 225Β±1ΞΌs             |    1.2  | import_iris.Iris.time__constraints   |
| +        | 321Β±5ΞΌs              | 402Β±7ΞΌs             |    1.25 | import_iris.Iris.time_aux_factory    |
| +        | 729Β±20ΞΌs             | 939Β±10ΞΌs            |    1.29 | import_iris.Iris.time_cube           |
| +        | 452Β±20ΞΌs             | 550Β±10ΞΌs            |    1.22 | import_iris.Iris.time_fileformats_cf |
| +        | 77.3Β±0.9ΞΌs           | 93.6Β±0.6ΞΌs          |    1.21 | iterate.IZip.time_izip               |

Generated by GHA run 21073632391

@ukmo-ccbunney
Copy link
Contributor

Should we consider adding in a doctests (py3.13) for the time being too to get complete doctest coverage?

A temporary switch to only Python 3.13 for doctests would be my favoured approach, so long as we've captured it in an issue for future.

@pp-mo - Any thoughts on this?

If I switch the doctests to run on py3.13, rather than py3.14, then the changes made to keep the doctests running (in da2617f) are technically not necessary and more. Although it might be good to keep them to future proof this kind of issue with pyvista taking some time to catch up with newer python releases?

Copy link
Contributor

@HGWright HGWright left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @ukmo-ccbunney. Its cool that this solves the problem now and also if it would come up again in the future.

@github-actions
Copy link
Contributor

⏱️ Performance Benchmark Report: f95bd65

Performance shifts
| Change   | Before [41414842]    | After [f95bd658]    |   Ratio | Benchmark (Parameter)                                              |
|----------|----------------------|---------------------|---------|--------------------------------------------------------------------|
| +        | 186Β±2ΞΌs              | 227Β±3ΞΌs             |    1.22 | import_iris.Iris.time__constraints                                 |
| +        | 316Β±7ΞΌs              | 401Β±5ΞΌs             |    1.27 | import_iris.Iris.time_aux_factory                                  |
| +        | 158Β±2ΞΌs              | 198Β±5ΞΌs             |    1.25 | import_iris.Iris.time_common_lenient                               |
| +        | 170Β±2ΞΌs              | 205Β±2ΞΌs             |    1.21 | import_iris.Iris.time_common_mixin                                 |
| +        | 390Β±10ΞΌs             | 470Β±7ΞΌs             |    1.21 | import_iris.Iris.time_coord_systems                                |
| +        | 726Β±8ΞΌs              | 955Β±10ΞΌs            |    1.31 | import_iris.Iris.time_cube                                         |
| +        | 444Β±4ΞΌs              | 537Β±7ΞΌs             |    1.21 | import_iris.Iris.time_fileformats_cf                               |
| +        | 177Β±3ΞΌs              | 214Β±2ΞΌs             |    1.21 | import_iris.Iris.time_io_format_picker                             |
| +        | 55.1Β±1ms             | 67.4Β±0.7ms          |    1.22 | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid |
Full benchmark results

Benchmarks that have stayed the same:

| Change   | Before [41414842]    | After [f95bd658]    |   Ratio | Benchmark (Parameter)                                                                       |
|----------|----------------------|---------------------|---------|---------------------------------------------------------------------------------------------|
|          | 20.3Β±0.3ms           | 20.4Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(False)                              |
|          | 55.2Β±0.7ms           | 55.9Β±1ms            |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(True)                               |
|          | 34.6Β±0.5ms           | 35.0Β±0.6ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(False)                    |
|          | 194Β±2ms              | 197Β±4ms             |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(True)                     |
|          | 22.3Β±0.3ms           | 22.5Β±0.4ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(False)                              |
|          | 34.5Β±0.6ms           | 35.3Β±0.7ms          |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(True)                               |
|          | 22.8Β±0.2ms           | 22.7Β±0.3ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(False)                              |
|          | 34.7Β±0.4ms           | 35.0Β±0.5ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(True)                               |
|          | 20.2Β±0.3ms           | 20.4Β±0.2ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_MAX(False)                                |
|          | 47.5Β±1ms             | 47.0Β±1ms            |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MAX(True)                                 |
|          | 132Β±2ms              | 134Β±3ms             |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(False)                            |
|          | 134Β±2ms              | 140Β±1ms             |    1.05 | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(True)                             |
|          | 21.7Β±0.3ms           | 21.4Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(False)                               |
|          | 51.4Β±2ms             | 51.3Β±0.5ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(True)                                |
|          | 22.8Β±0.3ms           | 22.6Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(False)                             |
|          | 60.0Β±1ms             | 60.4Β±0.7ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(True)                              |
|          | 20.4Β±0.2ms           | 20.3Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MIN(False)                                |
|          | 47.3Β±1ms             | 47.0Β±0.9ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MIN(True)                                 |
|          | 1.06Β±0.01s           | 1.10Β±0s             |    1.03 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(False)                               |
|          | 1.07Β±0.01s           | 1.10Β±0.01s          |    1.03 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(True)                                |
|          | 208Β±6ms              | 224Β±3ms             |    1.08 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(False)                         |
|          | 372Β±10ms             | 392Β±10ms            |    1.05 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(True)                          |
|          | 21.6Β±0.4ms           | 21.5Β±0.4ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(False)                         |
|          | 33.0Β±0.4ms           | 33.4Β±0.4ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(True)                          |
|          | 21.5Β±0.3ms           | 21.9Β±0.2ms          |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_RMS(False)                                |
|          | 61.7Β±1ms             | 61.9Β±0.8ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_RMS(True)                                 |
|          | 22.3Β±0.2ms           | 22.4Β±0.06ms         |    1    | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(False)                            |
|          | 64.3Β±1ms             | 64.7Β±0.6ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(True)                             |
|          | 22.2Β±0.4ms           | 22.5Β±0.4ms          |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(False)                           |
|          | 60.9Β±2ms             | 61.5Β±0.9ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(True)                            |
|          | 7.74Β±0.09ms          | 7.97Β±0.07ms         |    1.03 | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(False)                               |
|          | 24.8Β±0.4ms           | 24.7Β±0.4ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(True)                                |
|          | 19.7Β±0.3ms           | 20.1Β±0.2ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(False)                     |
|          | 151Β±7ms              | 153Β±5ms             |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(True)                      |
|          | 8.18Β±0.1ms           | 8.38Β±0.05ms         |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(False)                               |
|          | 23.1Β±0.2ms           | 23.6Β±0.4ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(True)                                |
|          | 8.22Β±0.1ms           | 8.36Β±0.07ms         |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(False)                               |
|          | 23.2Β±0.5ms           | 23.4Β±0.5ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(True)                                |
|          | 7.69Β±0.1ms           | 7.92Β±0.07ms         |    1.03 | aggregate_collapse.Aggregation.time_collapsed_by_MAX(False)                                 |
|          | 23.5Β±0.5ms           | 23.9Β±0.4ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_MAX(True)                                  |
|          | 25.1Β±0.3ms           | 24.8Β±0.2ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(False)                             |
|          | 38.6Β±0.7ms           | 38.0Β±0.6ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(True)                              |
|          | 8.08Β±0.08ms          | 8.11Β±0.1ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(False)                                |
|          | 23.4Β±0.5ms           | 24.4Β±0.3ms          |    1.04 | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(True)                                 |
|          | 9.03Β±0.1ms           | 9.00Β±0.06ms         |    1    | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(False)                              |
|          | 26.2Β±0.7ms           | 25.9Β±0.6ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(True)                               |
|          | 7.75Β±0.1ms           | 7.87Β±0.1ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MIN(False)                                 |
|          | 23.3Β±0.4ms           | 23.8Β±0.3ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_MIN(True)                                  |
|          | 529Β±4ms              | 531Β±4ms             |    1    | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(False)                                |
|          | 541Β±3ms              | 542Β±2ms             |    1    | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(True)                                 |
|          | 44.6Β±0.3ms           | 47.1Β±0.8ms          |    1.06 | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(False)                          |
|          | 163Β±4ms              | 167Β±4ms             |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(True)                           |
|          | 7.89Β±0.04ms          | 8.14Β±0.06ms         |    1.03 | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(False)                          |
|          | 22.8Β±0.4ms           | 22.9Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(True)                           |
|          | 8.03Β±0.06ms          | 8.13Β±0.05ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_RMS(False)                                 |
|          | 24.9Β±0.4ms           | 25.7Β±0.3ms          |    1.03 | aggregate_collapse.Aggregation.time_collapsed_by_RMS(True)                                  |
|          | 8.18Β±0.1ms           | 8.42Β±0.08ms         |    1.03 | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(False)                             |
|          | 24.9Β±0.4ms           | 25.3Β±0.5ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(True)                              |
|          | 8.27Β±0.06ms          | 8.42Β±0.05ms         |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(False)                            |
|          | 24.6Β±0.3ms           | 25.4Β±0.4ms          |    1.03 | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(True)                             |
|          | 22.1Β±0.4ms           | 21.9Β±0.2ms          |    0.99 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(False)                     |
|          | 86.1Β±1ms             | 86.6Β±0.7ms          |    1.01 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(True)                      |
|          | 21.9Β±0.2ms           | 22.0Β±0.2ms          |    1    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(False)                      |
|          | 95.9Β±1ms             | 98.1Β±2ms            |    1.02 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(True)                       |
|          | 20.9Β±0.2ms           | 20.7Β±0.2ms          |    0.99 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(False)                      |
|          | 56.8Β±0.8ms           | 57.3Β±0.9ms          |    1.01 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(True)                       |
|          | 8.36Β±0.09ms          | 8.45Β±0.09ms         |    1.01 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(False)                      |
|          | 30.3Β±0.8ms           | 30.5Β±0.4ms          |    1.01 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(True)                       |
|          | 8.16Β±0.05ms          | 8.37Β±0.1ms          |    1.03 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(False)                       |
|          | 31.6Β±0.9ms           | 31.7Β±0.5ms          |    1    | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(True)                        |
|          | 7.83Β±0.09ms          | 8.12Β±0.1ms          |    1.04 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(False)                       |
|          | 25.0Β±0.4ms           | 25.5Β±0.5ms          |    1.02 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(True)                        |
|          | 218Β±0.9ms            | 232Β±2ms             |    1.06 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(False)               |
|          | 307Β±5ms              | 322Β±4ms             |    1.05 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(True)                |
|          | 1.08Β±0.02ms          | 1.14Β±0.02ms         |    1.06 | cube.CubeCreation.time_create(False, 'construct')                                           |
|          | 381Β±3ΞΌs              | 398Β±6ΞΌs             |    1.04 | cube.CubeCreation.time_create(False, 'instantiate')                                         |
|          | 1.93Β±0.03ms          | 2.02Β±0.02ms         |    1.05 | cube.CubeCreation.time_create(True, 'construct')                                            |
|          | 1.36Β±0.02ms          | 1.43Β±0.02ms         |    1.05 | cube.CubeCreation.time_create(True, 'instantiate')                                          |
|          | 83.5Β±2ms             | 82.9Β±1ms            |    0.99 | cube.CubeEquality.time_equality(False, False, 'all_equal')                                  |
|          | 24.7Β±0.5ms           | 24.6Β±0.4ms          |    1    | cube.CubeEquality.time_equality(False, False, 'coord_inequality')                           |
|          | 97.2Β±2ms             | 96.8Β±1ms            |    1    | cube.CubeEquality.time_equality(False, False, 'data_inequality')                            |
|          | 16.2Β±0.2ΞΌs           | 16.9Β±0.2ΞΌs          |    1.04 | cube.CubeEquality.time_equality(False, False, 'metadata_inequality')                        |
|          | 88.8Β±1ms             | 86.1Β±2ms            |    0.97 | cube.CubeEquality.time_equality(False, True, 'all_equal')                                   |
|          | 28.4Β±0.6ms           | 27.3Β±0.4ms          |    0.96 | cube.CubeEquality.time_equality(False, True, 'coord_inequality')                            |
|          | 102Β±1ms              | 101Β±2ms             |    0.99 | cube.CubeEquality.time_equality(False, True, 'data_inequality')                             |
|          | 16.1Β±0.1ΞΌs           | 16.7Β±0.2ΞΌs          |    1.04 | cube.CubeEquality.time_equality(False, True, 'metadata_inequality')                         |
|          | 194Β±3ms              | 197Β±3ms             |    1.02 | cube.CubeEquality.time_equality(True, False, 'all_equal')                                   |
|          | 81.8Β±1ms             | 82.8Β±2ms            |    1.01 | cube.CubeEquality.time_equality(True, False, 'coord_inequality')                            |
|          | 221Β±5ms              | 225Β±3ms             |    1.02 | cube.CubeEquality.time_equality(True, False, 'data_inequality')                             |
|          | 50.2Β±0.8ΞΌs           | 54.3Β±0.5ΞΌs          |    1.08 | cube.CubeEquality.time_equality(True, False, 'metadata_inequality')                         |
|          | 293Β±8ms              | 305Β±6ms             |    1.04 | cube.CubeEquality.time_equality(True, True, 'all_equal')                                    |
|          | 177Β±4ms              | 187Β±6ms             |    1.06 | cube.CubeEquality.time_equality(True, True, 'coord_inequality')                             |
|          | 322Β±5ms              | 333Β±6ms             |    1.03 | cube.CubeEquality.time_equality(True, True, 'data_inequality')                              |
|          | 355Β±3ΞΌs              | 373Β±2ΞΌs             |    1.05 | cube.CubeEquality.time_equality(True, True, 'metadata_inequality')                          |
|          | 821Β±9ΞΌs              | 977Β±10ΞΌs            |    1.19 | import_iris.Iris.time__concatenate                                                          |
|          | 116Β±0.8ΞΌs            | 136Β±1ΞΌs             |    1.18 | import_iris.Iris.time__data_manager                                                         |
|          | 92.1Β±2ΞΌs             | 98.0Β±1ΞΌs            |    1.06 | import_iris.Iris.time__deprecation                                                          |
|          | 165Β±1ΞΌs              | 173Β±1ΞΌs             |    1.05 | import_iris.Iris.time__lazy_data                                                            |
|          | 916Β±10ΞΌs             | 1.09Β±0.01ms         |    1.18 | import_iris.Iris.time__merge                                                                |
|          | 74.0Β±1ΞΌs             | 72.6Β±0.2ΞΌs          |    0.98 | import_iris.Iris.time__representation                                                       |
|          | 609Β±10ΞΌs             | 717Β±7ΞΌs             |    1.18 | import_iris.Iris.time_analysis                                                              |
|          | 143Β±1ΞΌs              | 150Β±3ΞΌs             |    1.05 | import_iris.Iris.time_analysis__area_weighted                                               |
|          | 107Β±0.9ΞΌs            | 109Β±2ΞΌs             |    1.02 | import_iris.Iris.time_analysis__grid_angles                                                 |
|          | 248Β±2ΞΌs              | 280Β±3ΞΌs             |    1.13 | import_iris.Iris.time_analysis__interpolation                                               |
|          | 191Β±3ΞΌs              | 220Β±4ΞΌs             |    1.15 | import_iris.Iris.time_analysis__regrid                                                      |
|          | 111Β±1ΞΌs              | 126Β±3ΞΌs             |    1.13 | import_iris.Iris.time_analysis__scipy_interpolate                                           |
|          | 135Β±2ΞΌs              | 136Β±3ΞΌs             |    1.01 | import_iris.Iris.time_analysis_calculus                                                     |
|          | 324Β±3ΞΌs              | 352Β±4ΞΌs             |    1.09 | import_iris.Iris.time_analysis_cartography                                                  |
|          | 92.0Β±0.7ΞΌs           | 90.3Β±0.9ΞΌs          |    0.98 | import_iris.Iris.time_analysis_geomerty                                                     |
|          | 215Β±2ΞΌs              | 227Β±1ΞΌs             |    1.06 | import_iris.Iris.time_analysis_maths                                                        |
|          | 95.6Β±2ΞΌs             | 94.4Β±0.4ΞΌs          |    0.99 | import_iris.Iris.time_analysis_stats                                                        |
|          | 171Β±3ΞΌs              | 199Β±3ΞΌs             |    1.16 | import_iris.Iris.time_analysis_trajectory                                                   |
|          | 80.1Β±0.3ΞΌs           | 79.3Β±0.6ΞΌs          |    0.99 | import_iris.Iris.time_common                                                                |
|          | 1.35Β±0.01ms          | 1.57Β±0.02ms         |    1.16 | import_iris.Iris.time_common_metadata                                                       |
|          | 1.15Β±0.01ms          | 1.28Β±0ms            |    1.11 | import_iris.Iris.time_common_resolve                                                        |
|          | 196Β±0.7ΞΌs            | 220Β±2ΞΌs             |    1.13 | import_iris.Iris.time_config                                                                |
|          | 127Β±1ΞΌs              | 133Β±2ΞΌs             |    1.05 | import_iris.Iris.time_coord_categorisation                                                  |
|          | 770Β±10ΞΌs             | 918Β±5ΞΌs             |    1.19 | import_iris.Iris.time_coords                                                                |
|          | 268Β±10ΞΌs             | 289Β±6ΞΌs             |    1.08 | import_iris.Iris.time_exceptions                                                            |
|          | 73.7Β±0.3ΞΌs           | 73.2Β±0.4ΞΌs          |    0.99 | import_iris.Iris.time_experimental                                                          |
|          | 175Β±1ΞΌs              | 178Β±0.7ΞΌs           |    1.01 | import_iris.Iris.time_fileformats                                                           |
|          | 253Β±4ΞΌs              | 297Β±5ΞΌs             |    1.17 | import_iris.Iris.time_fileformats__ff                                                       |
|          | 2.58Β±0.05ms          | 2.67Β±0.02ms         |    1.03 | import_iris.Iris.time_fileformats__ff_cross_references                                      |
|          | 76.5Β±1ΞΌs             | 74.7Β±0.4ΞΌs          |    0.98 | import_iris.Iris.time_fileformats__pp_lbproc_pairs                                          |
|          | 112Β±1ΞΌs              | 128Β±2ΞΌs             |    1.13 | import_iris.Iris.time_fileformats_abf                                                       |
|          | 4.85Β±0.1ms           | 4.98Β±0.08ms         |    1.03 | import_iris.Iris.time_fileformats_dot                                                       |
|          | 71.3Β±0.7ΞΌs           | 70.1Β±0.6ΞΌs          |    0.98 | import_iris.Iris.time_fileformats_name                                                      |
|          | 255Β±2ΞΌs              | 267Β±3ΞΌs             |    1.04 | import_iris.Iris.time_fileformats_name_loaders                                              |
|          | 114Β±0.9ΞΌs            | 114Β±1ΞΌs             |    1    | import_iris.Iris.time_fileformats_netcdf                                                    |
|          | 122Β±1ΞΌs              | 132Β±2ΞΌs             |    1.08 | import_iris.Iris.time_fileformats_nimrod                                                    |
|          | 209Β±3ΞΌs              | 211Β±2ΞΌs             |    1.01 | import_iris.Iris.time_fileformats_nimrod_load_rules                                         |
|          | 794Β±3ΞΌs              | 906Β±6ΞΌs             |    1.14 | import_iris.Iris.time_fileformats_pp                                                        |
|          | 181Β±6ΞΌs              | 177Β±2ΞΌs             |    0.98 | import_iris.Iris.time_fileformats_pp_load_rules                                             |
|          | 141Β±1ΞΌs              | 136Β±8ΞΌs             |    0.97 | import_iris.Iris.time_fileformats_pp_save_rules                                             |
|          | 540Β±4ΞΌs              | 602Β±6ΞΌs             |    1.11 | import_iris.Iris.time_fileformats_rules                                                     |
|          | 221Β±2ΞΌs              | 259Β±3ΞΌs             |    1.17 | import_iris.Iris.time_fileformats_structured_array_identification                           |
|          | 79.5Β±0.9ΞΌs           | 78.9Β±0.4ΞΌs          |    0.99 | import_iris.Iris.time_fileformats_um                                                        |
|          | 157Β±2ΞΌs              | 170Β±3ΞΌs             |    1.08 | import_iris.Iris.time_fileformats_um__fast_load                                             |
|          | 138Β±2ΞΌs              | 157Β±0.6ΞΌs           |    1.14 | import_iris.Iris.time_fileformats_um__fast_load_structured_fields                           |
|          | 71.8Β±0.8ΞΌs           | 71.7Β±1ΞΌs            |    1    | import_iris.Iris.time_fileformats_um__ff_replacement                                        |
|          | 79.2Β±0.6ΞΌs           | 77.3Β±1ΞΌs            |    0.98 | import_iris.Iris.time_fileformats_um__optimal_array_structuring                             |
|          | 970Β±10ΞΌs             | 973Β±5ΞΌs             |    1    | import_iris.Iris.time_fileformats_um_cf_map                                                 |
|          | 138Β±2ΞΌs              | 142Β±2ΞΌs             |    1.03 | import_iris.Iris.time_io                                                                    |
|          | 211Β±1ΞΌs              | 218Β±2ΞΌs             |    1.03 | import_iris.Iris.time_iris                                                                  |
|          | 125Β±1ΞΌs              | 138Β±0.8ΞΌs           |    1.1  | import_iris.Iris.time_iterate                                                               |
|          | 8.05Β±0.04ms          | 8.29Β±0.1ms          |    1.03 | import_iris.Iris.time_palette                                                               |
|          | 1.79Β±0.01ms          | 1.81Β±0.01ms         |    1.01 | import_iris.Iris.time_plot                                                                  |
|          | 217Β±2ΞΌs              | 228Β±2ΞΌs             |    1.05 | import_iris.Iris.time_quickplot                                                             |
|          | 2.20Β±0.02ms          | 2.11Β±0.03ms         |    0.96 | import_iris.Iris.time_std_names                                                             |
|          | 1.85Β±0.03ms          | 1.86Β±0ms            |    1.01 | import_iris.Iris.time_symbols                                                               |
|          | 164Β±6ms              | 164Β±5ms             |    1    | import_iris.Iris.time_tests                                                                 |
|          | 254Β±5ΞΌs              | 237Β±8ΞΌs             |    0.93 | import_iris.Iris.time_third_party_cartopy                                                   |
|          | 5.17Β±0.03ms          | 5.10Β±0.05ms         |    0.99 | import_iris.Iris.time_third_party_cf_units                                                  |
|          | 123Β±0.7ΞΌs            | 121Β±3ΞΌs             |    0.98 | import_iris.Iris.time_third_party_cftime                                                    |
|          | 2.66Β±0.01ms          | 2.73Β±0.03ms         |    1.03 | import_iris.Iris.time_third_party_matplotlib                                                |
|          | 561Β±6ΞΌs              | 566Β±9ΞΌs             |    1.01 | import_iris.Iris.time_third_party_numpy                                                     |
|          | 168Β±2ΞΌs              | 172Β±2ΞΌs             |    1.02 | import_iris.Iris.time_third_party_scipy                                                     |
|          | 99.7Β±2ΞΌs             | 112Β±0.9ΞΌs           |    1.12 | import_iris.Iris.time_time                                                                  |
|          | 856Β±10ΞΌs             | 881Β±6ΞΌs             |    1.03 | import_iris.Iris.time_util                                                                  |
|          | 79.3Β±1ΞΌs             | 94.9Β±3ΞΌs            |    1.2  | iterate.IZip.time_izip                                                                      |
|          | 9.84Β±0.08ms          | 10.5Β±0.2ms          |    1.07 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'FF')                                  |
|          | 19.6Β±0.5ms           | 20.0Β±0.2ms          |    1.02 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'NetCDF')                              |
|          | 9.97Β±0.1ms           | 10.3Β±0.1ms          |    1.04 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'PP')                                  |
|          | 9.65Β±0.09ms          | 10.3Β±0.1ms          |    1.07 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'FF')                                   |
|          | 15.7Β±0.4ms           | 16.8Β±0.3ms          |    1.07 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'NetCDF')                               |
|          | 9.96Β±0.1ms           | 10.3Β±0.1ms          |    1.03 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'PP')                                   |
|          | 1.48Β±0.01s           | 1.57Β±0.01s          |    1.06 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'FF')                                    |
|          | 15.1Β±0.4ms           | 16.2Β±0.6ms          |    1.07 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'NetCDF')                                |
|          | 1.49Β±0.02s           | 1.58Β±0.02s          |    1.05 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'PP')                                    |
|          | 1.51Β±0.02s           | 1.58Β±0s             |    1.05 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'FF')                                     |
|          | 14.8Β±0.5ms           | 15.8Β±0.4ms          |    1.07 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'NetCDF')                                 |
|          | 1.51Β±0.02s           | 1.60Β±0.01s          |    1.06 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'PP')                                     |
|          | 5.25Β±0.1ms           | 5.64Β±0.1ms          |    1.07 | load.LoadAndRealise.time_load((50, 50, 2), False, 'FF')                                     |
|          | 14.4Β±0.3ms           | 15.1Β±0.3ms          |    1.04 | load.LoadAndRealise.time_load((50, 50, 2), False, 'NetCDF')                                 |
|          | 5.28Β±0.04ms          | 5.38Β±0.04ms         |    1.02 | load.LoadAndRealise.time_load((50, 50, 2), False, 'PP')                                     |
|          | 5.23Β±0.04ms          | 5.41Β±0.07ms         |    1.04 | load.LoadAndRealise.time_load((50, 50, 2), True, 'FF')                                      |
|          | 15.0Β±0.3ms           | 15.3Β±0.2ms          |    1.02 | load.LoadAndRealise.time_load((50, 50, 2), True, 'NetCDF')                                  |
|          | 5.22Β±0.07ms          | 5.33Β±0.1ms          |    1.02 | load.LoadAndRealise.time_load((50, 50, 2), True, 'PP')                                      |
|          | 25.5Β±2ms             | 27.5Β±1ms            |    1.08 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'FF')                               |
|          | 27.9Β±0.8ms           | 28.3Β±0.8ms          |    1.02 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'NetCDF')                           |
|          | 11.6Β±1ms             | 12.7Β±1ms            |    1.1  | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'PP')                               |
|          | 28.4Β±1ms             | 28.9Β±1ms            |    1.02 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'FF')                                |
|          | 96.2Β±1ms             | 97.5Β±0.8ms          |    1.01 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'NetCDF')                            |
|          | 28.2Β±1ms             | 29.8Β±2ms            |    1.06 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'PP')                                |
|          | 609Β±4ms              | 618Β±5ms             |    1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'FF')                                 |
|          | 6.23Β±0.1ms           | 6.19Β±0.2ms          |    0.99 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'NetCDF')                             |
|          | 610Β±5ms              | 615Β±3ms             |    1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'PP')                                 |
|          | 618Β±5ms              | 626Β±4ms             |    1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'FF')                                  |
|          | 5.82Β±0.2ms           | 6.31Β±0.5ms          |    1.08 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'NetCDF')                              |
|          | 614Β±5ms              | 623Β±7ms             |    1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'PP')                                  |
|          | 2.16Β±0.08ms          | 2.22Β±0.08ms         |    1.03 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'FF')                                  |
|          | 5.90Β±0.3ms           | 6.38Β±0.3ms          |    1.08 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'NetCDF')                              |
|          | 2.15Β±0.06ms          | 2.22Β±0.08ms         |    1.03 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'PP')                                  |
|          | 2.13Β±0.1ms           | 2.33Β±0.07ms         |    1.1  | load.LoadAndRealise.time_realise((50, 50, 2), True, 'FF')                                   |
|          | 5.78Β±0.3ms           | 6.15Β±0.2ms          |    1.06 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'NetCDF')                               |
|          | 2.18Β±0.09ms          | 2.17Β±0.05ms         |    1    | load.LoadAndRealise.time_realise((50, 50, 2), True, 'PP')                                   |
|          | 340Β±2ms              | 359Β±5ms             |    1.05 | load.ManyCubes.time_many_cube_load                                                          |
|          | 90.3Β±1ms             | 91.3Β±1ms            |    1.01 | load.ManyVars.time_many_var_load                                                            |
|          | 9.87Β±0.1ms           | 10.5Β±0.1ms          |    1.06 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'FF')                            |
|          | 9.99Β±0.06ms          | 10.5Β±0.1ms          |    1.05 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'PP')                            |
|          | 1.50Β±0.01s           | 1.58Β±0.01s          |    1.05 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'FF')                              |
|          | 1.50Β±0.02s           | 1.59Β±0.01s          |    1.06 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'PP')                              |
|          | 5.20Β±0.06ms          | 5.34Β±0.03ms         |    1.03 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'FF')                                 |
|          | 5.18Β±0.1ms           | 5.37Β±0.08ms         |    1.04 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'PP')                                 |
|          | 8.97Β±0.06ms          | 9.30Β±0.2ms          |    1.04 | load.StructuredFF.time_structured_load((1280, 960, 5), False)                               |
|          | 5.52Β±0.05ms          | 5.74Β±0.2ms          |    1.04 | load.StructuredFF.time_structured_load((1280, 960, 5), True)                                |
|          | 1.48Β±0.02s           | 1.55Β±0.01s          |    1.05 | load.StructuredFF.time_structured_load((2, 2, 1000), False)                                 |
|          | 421Β±8ms              | 443Β±4ms             |    1.05 | load.StructuredFF.time_structured_load((2, 2, 1000), True)                                  |
|          | 4.25Β±0.1ms           | 4.44Β±0.05ms         |    1.05 | load.StructuredFF.time_structured_load((2, 2, 2), False)                                    |
|          | 4.21Β±0.09ms          | 4.50Β±0.1ms          |    1.07 | load.StructuredFF.time_structured_load((2, 2, 2), True)                                     |
|          | 158Β±3ms              | 163Β±2ms             |    1.03 | load.TimeConstraint.time_time_constraint(20, 'FF')                                          |
|          | 18.3Β±0.9ms           | 18.3Β±0.7ms          |    1    | load.TimeConstraint.time_time_constraint(20, 'NetCDF')                                      |
|          | 158Β±3ms              | 166Β±2ms             |    1.05 | load.TimeConstraint.time_time_constraint(20, 'PP')                                          |
|          | 31.3Β±0.6ms           | 33.4Β±0.7ms          |    1.07 | load.TimeConstraint.time_time_constraint(3, 'FF')                                           |
|          | 17.1Β±0.2ms           | 17.7Β±0.3ms          |    1.04 | load.TimeConstraint.time_time_constraint(3, 'NetCDF')                                       |
|          | 31.6Β±0.6ms           | 32.8Β±1ms            |    1.04 | load.TimeConstraint.time_time_constraint(3, 'PP')                                           |
|          | 21.5Β±0.2ms           | 23.1Β±0.6ms          |    1.07 | load.ugrid.BasicLoading.time_load_file(1)                                                   |
|          | 53.7Β±0.9ms           | 58.3Β±0.6ms          |    1.09 | load.ugrid.BasicLoading.time_load_file(200000)                                              |
|          | 11.1Β±0.2ms           | 11.8Β±0.3ms          |    1.06 | load.ugrid.BasicLoading.time_load_mesh(1)                                                   |
|          | 21.8Β±0.4ms           | 23.1Β±0.8ms          |    1.06 | load.ugrid.BasicLoading.time_load_mesh(200000)                                              |
|          | 21.0Β±0.5ms           | 22.3Β±0.3ms          |    1.06 | load.ugrid.BasicLoadingTime.time_load_file(1)                                               |
|          | 22.3Β±0.4ms           | 23.3Β±0.7ms          |    1.04 | load.ugrid.BasicLoadingTime.time_load_file(200000)                                          |
|          | 11.1Β±0.2ms           | 12.3Β±0.4ms          |    1.11 | load.ugrid.BasicLoadingTime.time_load_mesh(1)                                               |
|          | 14.0Β±0.4ms           | 15.2Β±0.6ms          |    1.08 | load.ugrid.BasicLoadingTime.time_load_mesh(200000)                                          |
|          | 23.8Β±0.7ms           | 25.5Β±0.7ms          |    1.07 | load.ugrid.Callback.time_load_file_callback(1)                                              |
|          | 64.7Β±0.8ms           | 69.3Β±1ms            |    1.07 | load.ugrid.Callback.time_load_file_callback(200000)                                         |
|          | 23.5Β±0.5ms           | 25.1Β±0.6ms          |    1.07 | load.ugrid.CallbackTime.time_load_file_callback(1)                                          |
|          | 25.6Β±0.5ms           | 27.3Β±0.6ms          |    1.06 | load.ugrid.CallbackTime.time_load_file_callback(200000)                                     |
|          | 5.79Β±0.2ms           | 6.24Β±0.3ms          |    1.08 | load.ugrid.DataRealisation.time_realise_data(10000)                                         |
|          | 8.61Β±0.9ms           | 9.10Β±0.3ms          |    1.06 | load.ugrid.DataRealisation.time_realise_data(200000)                                        |
|          | 40.7Β±1ms             | 42.0Β±0.9ms          |    1.03 | load.ugrid.DataRealisationTime.time_realise_data(10000)                                     |
|          | 787Β±3ms              | 776Β±6ms             |    0.99 | load.ugrid.DataRealisationTime.time_realise_data(200000)                                    |
|          | 1.37Β±0.03s           | 1.38Β±0.03s          |    1.01 | merge_concat.Concatenate.time_concatenate(False)                                            |
|          | 449Β±7ms              | 454Β±10ms            |    1.01 | merge_concat.Concatenate.time_concatenate(True)                                             |
|          | 2.42Β±0G              | 2.43Β±0.01G          |    1    | merge_concat.Concatenate.tracemalloc_concatenate(False)                                     |
|          | 110Β±2M               | 120Β±7M              |    1.09 | merge_concat.Concatenate.tracemalloc_concatenate(True)                                      |
|          | 35.4Β±1ms             | 35.6Β±1ms            |    1.01 | merge_concat.Merge.time_merge                                                               |
|          | 126Β±0.03M            | 126Β±0.03M           |    1    | merge_concat.Merge.tracemalloc_merge                                                        |
|          | 368Β±3ns              | 382Β±4ns             |    1.04 | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(50)              |
|          | 228Β±1ms              | 200Β±2ms             |    0.88 | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(500)             |
|          | 772Β±0.6k             | 771Β±0.6k            |    1    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(50)       |
|          | 60.2Β±0M              | 60.2Β±0M             |    1    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(500)      |
|          | 19.1Β±0.3ms           | 20.0Β±0.4ms          |    1.05 | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(50)           |
|          | 22.1Β±0.3ms           | 22.9Β±0.6ms          |    1.03 | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(500)          |
|          | 1.27Β±0.09M           | 1.23Β±0M             |    0.97 | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(50)    |
|          | 25Β±0.09M             | 25Β±0M               |    1    | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(500)   |
|          | 185Β±6ms              | 190Β±7ms             |    1.03 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(50)         |
|          | 688Β±7ms              | 670Β±9ms             |    0.97 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(500)        |
|          | 1.48Β±0.02M           | 1.62Β±0.04M          |    1.09 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(50)  |
|          | 96.5Β±0.03M           | 96.7Β±0.03M          |    1    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(500) |
|          | 125Β±3ms              | 128Β±4ms             |    1.02 | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(50)                             |
|          | 624Β±4ms              | 602Β±6ms             |    0.96 | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(500)                            |
|          | 1.41Β±0.04M           | 1.5Β±0.04M           |    1.07 | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(50)                      |
|          | 96.5Β±0.04M           | 96.5Β±0.03M          |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(500)                     |
|          | 2.1752849999999997   | 2.1752849999999997  |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(50)                  |
|          | 216.01528499999998   | 216.01528499999998  |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(500)                 |
|          | 6.55Β±0.2ms           | 6.78Β±0.07ms         |    1.03 | plot.AuxSort.time_aux_sort                                                                  |
|          | 80.9Β±4ms             | 78.2Β±4ms            |    0.97 | regridding.CurvilinearRegridding.time_regrid_pic                                            |
|          | 136Β±3M               | 136Β±3M              |    1    | regridding.CurvilinearRegridding.tracemalloc_regrid_pic                                     |
|          | 98.8Β±7ms             | 110Β±7ms             |    1.12 | regridding.HorizontalChunkedRegridding.time_regrid_area_w                                   |
|          | 107Β±0.1M             | 107Β±0.4M            |    1    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w                            |
|          | 147Β±0.04M            | 147Β±0.04M           |    1    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w_new_grid                   |
|          | 7.35Β±0.3ms           | 7.21Β±0.3ms          |    0.98 | save.NetcdfSave.time_netcdf_save_cube(50, False)                                            |
|          | 124Β±3ms              | 128Β±4ms             |    1.03 | save.NetcdfSave.time_netcdf_save_cube(50, True)                                             |
|          | 45.9Β±0.5ms           | 46.2Β±0.9ms          |    1.01 | save.NetcdfSave.time_netcdf_save_cube(600, False)                                           |
|          | 528Β±2ms              | 533Β±6ms             |    1.01 | save.NetcdfSave.time_netcdf_save_cube(600, True)                                            |
|          | 90.2Β±0.4ns           | 92.7Β±0.3ns          |    1.03 | save.NetcdfSave.time_netcdf_save_mesh(50, False)                                            |
|          | 109Β±1ms              | 109Β±3ms             |    1.01 | save.NetcdfSave.time_netcdf_save_mesh(50, True)                                             |
|          | 90.3Β±0.6ns           | 94.1Β±0.9ns          |    1.04 | save.NetcdfSave.time_netcdf_save_mesh(600, False)                                           |
|          | 462Β±2ms              | 473Β±4ms             |    1.02 | save.NetcdfSave.time_netcdf_save_mesh(600, True)                                            |
|          | 31.8Β±0.4k            | 30.5Β±0.5k           |    0.96 | save.NetcdfSave.tracemalloc_netcdf_save(50, False)                                          |
|          | 1.86Β±0.07M           | 1.96Β±0.2M           |    1.05 | save.NetcdfSave.tracemalloc_netcdf_save(50, True)                                           |
|          | 31.7Β±0.4k            | 30.4Β±0.4k           |    0.96 | save.NetcdfSave.tracemalloc_netcdf_save(600, False)                                         |
|          | 208Β±20M              | 225Β±30M             |    1.08 | save.NetcdfSave.tracemalloc_netcdf_save(600, True)                                          |
|          | 39.0Β±0.5ms           | 39.8Β±0.5ms          |    1.02 | stats.PearsonR.time_lazy                                                                    |
|          | 9.56Β±0.1ms           | 9.77Β±0.2ms          |    1.02 | stats.PearsonR.time_real                                                                    |
|          | 29.4Β±1M              | 31Β±1M               |    1.05 | stats.PearsonR.tracemalloc_lazy                                                             |
|          | 18.3Β±0.01M           | 18.3Β±0M             |    1    | stats.PearsonR.tracemalloc_real                                                             |
|          | 28.3Β±1ms             | 28.4Β±0.5ms          |    1.01 | trajectory.TrajectoryInterpolation.time_trajectory_linear                                   |
|          | 64.4Β±0.9ms           | 64.4Β±0.5ms          |    1    | trajectory.TrajectoryInterpolation.time_trajectory_nearest                                  |
|          | 17.6Β±0.02M           | 17.6Β±0.04M          |    1    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_linear                            |
|          | 7.75Β±0.02M           | 7.77Β±0.05M          |    1    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_nearest                           |

Benchmarks that have got worse:

| Change   | Before [41414842]    | After [f95bd658]    |   Ratio | Benchmark (Parameter)                                              |
|----------|----------------------|---------------------|---------|--------------------------------------------------------------------|
| +        | 186Β±2ΞΌs              | 227Β±3ΞΌs             |    1.22 | import_iris.Iris.time__constraints                                 |
| +        | 316Β±7ΞΌs              | 401Β±5ΞΌs             |    1.27 | import_iris.Iris.time_aux_factory                                  |
| +        | 158Β±2ΞΌs              | 198Β±5ΞΌs             |    1.25 | import_iris.Iris.time_common_lenient                               |
| +        | 170Β±2ΞΌs              | 205Β±2ΞΌs             |    1.21 | import_iris.Iris.time_common_mixin                                 |
| +        | 390Β±10ΞΌs             | 470Β±7ΞΌs             |    1.21 | import_iris.Iris.time_coord_systems                                |
| +        | 726Β±8ΞΌs              | 955Β±10ΞΌs            |    1.31 | import_iris.Iris.time_cube                                         |
| +        | 444Β±4ΞΌs              | 537Β±7ΞΌs             |    1.21 | import_iris.Iris.time_fileformats_cf                               |
| +        | 177Β±3ΞΌs              | 214Β±2ΞΌs             |    1.21 | import_iris.Iris.time_io_format_picker                             |
| +        | 55.1Β±1ms             | 67.4Β±0.7ms          |    1.22 | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid |

Generated by GHA run 21211631240

@github-actions
Copy link
Contributor

⏱️ Performance Benchmark Report: 529ab99

Performance shifts
| Change   | Before [41414842]    | After [529ab998]    |   Ratio | Benchmark (Parameter)                                         |
|----------|----------------------|---------------------|---------|---------------------------------------------------------------|
| +        | 798Β±20ΞΌs             | 995Β±20ΞΌs            |    1.25 | import_iris.Iris.time__concatenate                            |
| +        | 187Β±5ΞΌs              | 227Β±4ΞΌs             |    1.22 | import_iris.Iris.time__constraints                            |
| +        | 894Β±10ΞΌs             | 1.09Β±0.02ms         |    1.22 | import_iris.Iris.time__merge                                  |
| +        | 173Β±2ΞΌs              | 209Β±5ΞΌs             |    1.21 | import_iris.Iris.time_common_mixin                            |
| +        | 76.5Β±0.5ΞΌs           | 94.4Β±2ΞΌs            |    1.23 | iterate.IZip.time_izip                                        |
| +        | 23.8Β±1ms             | 29.6Β±0.9ms          |    1.24 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'FF') |
Full benchmark results

Benchmarks that have stayed the same:

| Change   | Before [41414842]    | After [529ab998]    |   Ratio | Benchmark (Parameter)                                                                       |
|----------|----------------------|---------------------|---------|---------------------------------------------------------------------------------------------|
|          | 20.9Β±0.6ms           | 20.9Β±0.5ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(False)                              |
|          | 55.7Β±1ms             | 57.6Β±1ms            |    1.03 | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(True)                               |
|          | 35.1Β±0.4ms           | 36.0Β±0.7ms          |    1.03 | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(False)                    |
|          | 197Β±5ms              | 206Β±3ms             |    1.04 | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(True)                     |
|          | 23.1Β±0.4ms           | 23.2Β±0.8ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(False)                              |
|          | 34.2Β±0.6ms           | 35.2Β±0.9ms          |    1.03 | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(True)                               |
|          | 22.9Β±0.7ms           | 22.7Β±0.5ms          |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(False)                              |
|          | 34.2Β±0.6ms           | 35.5Β±0.6ms          |    1.04 | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(True)                               |
|          | 20.9Β±0.4ms           | 20.5Β±0.6ms          |    0.98 | aggregate_collapse.Aggregation.time_aggregated_by_MAX(False)                                |
|          | 47.9Β±2ms             | 48.1Β±0.9ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MAX(True)                                 |
|          | 132Β±2ms              | 135Β±2ms             |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(False)                            |
|          | 136Β±2ms              | 140Β±2ms             |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(True)                             |
|          | 22.0Β±0.6ms           | 22.3Β±0.6ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(False)                               |
|          | 51.9Β±1ms             | 51.5Β±1ms            |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(True)                                |
|          | 23.2Β±0.6ms           | 23.3Β±1ms            |    1    | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(False)                             |
|          | 61.8Β±2ms             | 61.5Β±1ms            |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(True)                              |
|          | 21.2Β±0.8ms           | 20.4Β±0.4ms          |    0.96 | aggregate_collapse.Aggregation.time_aggregated_by_MIN(False)                                |
|          | 49.0Β±1ms             | 47.6Β±0.6ms          |    0.97 | aggregate_collapse.Aggregation.time_aggregated_by_MIN(True)                                 |
|          | 1.08Β±0.01s           | 1.10Β±0.01s          |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(False)                               |
|          | 1.06Β±0.01s           | 1.10Β±0.01s          |    1.04 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(True)                                |
|          | 215Β±5ms              | 227Β±2ms             |    1.05 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(False)                         |
|          | 381Β±7ms              | 405Β±6ms             |    1.06 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(True)                          |
|          | 21.6Β±0.4ms           | 21.9Β±0.5ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(False)                         |
|          | 33.2Β±0.8ms           | 34.7Β±0.6ms          |    1.04 | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(True)                          |
|          | 21.7Β±0.7ms           | 21.9Β±0.3ms          |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_RMS(False)                                |
|          | 62.0Β±2ms             | 62.9Β±1ms            |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_RMS(True)                                 |
|          | 22.7Β±0.7ms           | 23.1Β±0.6ms          |    1.02 | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(False)                            |
|          | 66.2Β±2ms             | 65.7Β±1ms            |    0.99 | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(True)                             |
|          | 23.1Β±0.6ms           | 23.1Β±0.6ms          |    1    | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(False)                           |
|          | 61.9Β±0.8ms           | 62.4Β±2ms            |    1.01 | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(True)                            |
|          | 8.23Β±0.2ms           | 7.95Β±0.2ms          |    0.97 | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(False)                               |
|          | 24.8Β±0.8ms           | 26.5Β±0.6ms          |    1.07 | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(True)                                |
|          | 20.0Β±0.3ms           | 20.3Β±0.2ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(False)                     |
|          | 158Β±7ms              | 159Β±6ms             |    1    | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(True)                      |
|          | 8.25Β±0.1ms           | 8.30Β±0.09ms         |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(False)                               |
|          | 23.8Β±0.8ms           | 23.6Β±0.4ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(True)                                |
|          | 8.21Β±0.2ms           | 8.30Β±0.2ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(False)                               |
|          | 23.2Β±0.5ms           | 23.8Β±0.5ms          |    1.03 | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(True)                                |
|          | 7.95Β±0.2ms           | 7.79Β±0.1ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_MAX(False)                                 |
|          | 23.5Β±0.7ms           | 23.9Β±0.6ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_MAX(True)                                  |
|          | 25.2Β±0.4ms           | 25.0Β±0.5ms          |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(False)                             |
|          | 39.4Β±1ms             | 38.5Β±0.2ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(True)                              |
|          | 8.33Β±0.2ms           | 8.11Β±0.2ms          |    0.97 | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(False)                                |
|          | 24.0Β±0.8ms           | 24.2Β±0.4ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(True)                                 |
|          | 9.19Β±0.2ms           | 9.05Β±0.2ms          |    0.98 | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(False)                              |
|          | 26.6Β±0.8ms           | 25.9Β±0.6ms          |    0.97 | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(True)                               |
|          | 7.90Β±0.1ms           | 7.87Β±0.1ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_MIN(False)                                 |
|          | 23.5Β±0.8ms           | 23.8Β±0.6ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MIN(True)                                  |
|          | 527Β±3ms              | 534Β±2ms             |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(False)                                |
|          | 541Β±3ms              | 544Β±2ms             |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(True)                                 |
|          | 45.5Β±0.8ms           | 47.1Β±0.4ms          |    1.04 | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(False)                          |
|          | 169Β±5ms              | 175Β±3ms             |    1.03 | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(True)                           |
|          | 8.06Β±0.2ms           | 8.12Β±0.1ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(False)                          |
|          | 22.8Β±0.3ms           | 23.0Β±0.5ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(True)                           |
|          | 8.11Β±0.1ms           | 8.22Β±0.2ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_RMS(False)                                 |
|          | 25.7Β±0.4ms           | 25.8Β±0.5ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_RMS(True)                                  |
|          | 8.34Β±0.3ms           | 8.25Β±0.08ms         |    0.99 | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(False)                             |
|          | 25.4Β±0.7ms           | 25.7Β±0.6ms          |    1.01 | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(True)                              |
|          | 8.53Β±0.2ms           | 8.55Β±0.2ms          |    1    | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(False)                            |
|          | 24.9Β±0.9ms           | 25.3Β±0.9ms          |    1.02 | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(True)                             |
|          | 22.2Β±0.7ms           | 22.0Β±0.3ms          |    0.99 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(False)                     |
|          | 87.4Β±2ms             | 87.6Β±1ms            |    1    | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(True)                      |
|          | 21.9Β±0.4ms           | 22.3Β±0.6ms          |    1.02 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(False)                      |
|          | 96.6Β±2ms             | 101Β±2ms             |    1.05 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(True)                       |
|          | 21.0Β±0.4ms           | 21.2Β±0.5ms          |    1.01 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(False)                      |
|          | 56.4Β±1ms             | 58.6Β±1ms            |    1.04 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(True)                       |
|          | 8.52Β±0.3ms           | 8.62Β±0.1ms          |    1.01 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(False)                      |
|          | 30.3Β±0.7ms           | 31.6Β±0.8ms          |    1.04 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(True)                       |
|          | 8.28Β±0.3ms           | 8.62Β±0.1ms          |    1.04 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(False)                       |
|          | 31.8Β±1ms             | 32.6Β±0.9ms          |    1.03 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(True)                        |
|          | 8.02Β±0.2ms           | 8.31Β±0.09ms         |    1.04 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(False)                       |
|          | 25.7Β±1ms             | 26.7Β±0.7ms          |    1.04 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(True)                        |
|          | 227Β±4ms              | 234Β±3ms             |    1.03 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(False)               |
|          | 319Β±5ms              | 330Β±4ms             |    1.04 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(True)                |
|          | 1.10Β±0.01ms          | 1.13Β±0.02ms         |    1.03 | cube.CubeCreation.time_create(False, 'construct')                                           |
|          | 387Β±7ΞΌs              | 391Β±3ΞΌs             |    1.01 | cube.CubeCreation.time_create(False, 'instantiate')                                         |
|          | 1.95Β±0.03ms          | 2.04Β±0.03ms         |    1.05 | cube.CubeCreation.time_create(True, 'construct')                                            |
|          | 1.37Β±0.02ms          | 1.44Β±0.02ms         |    1.06 | cube.CubeCreation.time_create(True, 'instantiate')                                          |
|          | 88.7Β±3ms             | 92.9Β±4ms            |    1.05 | cube.CubeEquality.time_equality(False, False, 'all_equal')                                  |
|          | 26.0Β±1ms             | 25.8Β±1ms            |    0.99 | cube.CubeEquality.time_equality(False, False, 'coord_inequality')                           |
|          | 102Β±3ms              | 107Β±3ms             |    1.05 | cube.CubeEquality.time_equality(False, False, 'data_inequality')                            |
|          | 16.6Β±0.2ΞΌs           | 17.0Β±0.2ΞΌs          |    1.02 | cube.CubeEquality.time_equality(False, False, 'metadata_inequality')                        |
|          | 94.7Β±2ms             | 98.5Β±4ms            |    1.04 | cube.CubeEquality.time_equality(False, True, 'all_equal')                                   |
|          | 29.8Β±1ms             | 28.4Β±1ms            |    0.95 | cube.CubeEquality.time_equality(False, True, 'coord_inequality')                            |
|          | 112Β±2ms              | 114Β±5ms             |    1.02 | cube.CubeEquality.time_equality(False, True, 'data_inequality')                             |
|          | 16.6Β±0.2ΞΌs           | 17.2Β±0.1ΞΌs          |    1.04 | cube.CubeEquality.time_equality(False, True, 'metadata_inequality')                         |
|          | 206Β±7ms              | 211Β±8ms             |    1.03 | cube.CubeEquality.time_equality(True, False, 'all_equal')                                   |
|          | 87.6Β±2ms             | 88.3Β±4ms            |    1.01 | cube.CubeEquality.time_equality(True, False, 'coord_inequality')                            |
|          | 238Β±3ms              | 247Β±20ms            |    1.04 | cube.CubeEquality.time_equality(True, False, 'data_inequality')                             |
|          | 51.3Β±0.4ΞΌs           | 55.2Β±0.5ΞΌs          |    1.08 | cube.CubeEquality.time_equality(True, False, 'metadata_inequality')                         |
|          | 315Β±10ms             | 316Β±10ms            |    1    | cube.CubeEquality.time_equality(True, True, 'all_equal')                                    |
|          | 195Β±6ms              | 196Β±7ms             |    1.01 | cube.CubeEquality.time_equality(True, True, 'coord_inequality')                             |
|          | 352Β±10ms             | 348Β±20ms            |    0.99 | cube.CubeEquality.time_equality(True, True, 'data_inequality')                              |
|          | 364Β±3ΞΌs              | 374Β±5ΞΌs             |    1.03 | cube.CubeEquality.time_equality(True, True, 'metadata_inequality')                          |
|          | 118Β±6ΞΌs              | 136Β±6ΞΌs             |    1.15 | import_iris.Iris.time__data_manager                                                         |
|          | 93.0Β±2ΞΌs             | 100.0Β±2ΞΌs           |    1.07 | import_iris.Iris.time__deprecation                                                          |
|          | 165Β±4ΞΌs              | 179Β±4ΞΌs             |    1.09 | import_iris.Iris.time__lazy_data                                                            |
|          | 73.3Β±0.6ΞΌs           | 73.9Β±0.5ΞΌs          |    1.01 | import_iris.Iris.time__representation                                                       |
|          | 626Β±10ΞΌs             | 730Β±7ΞΌs             |    1.17 | import_iris.Iris.time_analysis                                                              |
|          | 144Β±2ΞΌs              | 156Β±3ΞΌs             |    1.08 | import_iris.Iris.time_analysis__area_weighted                                               |
|          | 106Β±1ΞΌs              | 108Β±3ΞΌs             |    1.01 | import_iris.Iris.time_analysis__grid_angles                                                 |
|          | 255Β±5ΞΌs              | 284Β±8ΞΌs             |    1.11 | import_iris.Iris.time_analysis__interpolation                                               |
|          | 200Β±5ΞΌs              | 223Β±4ΞΌs             |    1.11 | import_iris.Iris.time_analysis__regrid                                                      |
|          | 110Β±3ΞΌs              | 127Β±3ΞΌs             |    1.16 | import_iris.Iris.time_analysis__scipy_interpolate                                           |
|          | 138Β±6ΞΌs              | 137Β±1ΞΌs             |    0.99 | import_iris.Iris.time_analysis_calculus                                                     |
|          | 334Β±10ΞΌs             | 363Β±6ΞΌs             |    1.09 | import_iris.Iris.time_analysis_cartography                                                  |
|          | 90.5Β±2ΞΌs             | 92.3Β±0.4ΞΌs          |    1.02 | import_iris.Iris.time_analysis_geomerty                                                     |
|          | 214Β±5ΞΌs              | 229Β±3ΞΌs             |    1.07 | import_iris.Iris.time_analysis_maths                                                        |
|          | 93.9Β±1ΞΌs             | 96.6Β±0.6ΞΌs          |    1.03 | import_iris.Iris.time_analysis_stats                                                        |
|          | 171Β±4ΞΌs              | 196Β±2ΞΌs             |    1.15 | import_iris.Iris.time_analysis_trajectory                                                   |
|          | 339Β±20ΞΌs             | 400Β±5ΞΌs             |    1.18 | import_iris.Iris.time_aux_factory                                                           |
|          | 79.9Β±2ΞΌs             | 81.2Β±2ΞΌs            |    1.02 | import_iris.Iris.time_common                                                                |
|          | 165Β±3ΞΌs              | 196Β±3ΞΌs             |    1.19 | import_iris.Iris.time_common_lenient                                                        |
|          | 1.41Β±0.04ms          | 1.58Β±0.03ms         |    1.12 | import_iris.Iris.time_common_metadata                                                       |
|          | 1.19Β±0.03ms          | 1.28Β±0.01ms         |    1.08 | import_iris.Iris.time_common_resolve                                                        |
|          | 201Β±2ΞΌs              | 229Β±3ΞΌs             |    1.14 | import_iris.Iris.time_config                                                                |
|          | 130Β±3ΞΌs              | 133Β±1ΞΌs             |    1.03 | import_iris.Iris.time_coord_categorisation                                                  |
|          | 392Β±10ΞΌs             | 470Β±10ΞΌs            |    1.2  | import_iris.Iris.time_coord_systems                                                         |
|          | 793Β±20ΞΌs             | 939Β±10ΞΌs            |    1.18 | import_iris.Iris.time_coords                                                                |
|          | 822Β±60ΞΌs             | 959Β±30ΞΌs            |    1.17 | import_iris.Iris.time_cube                                                                  |
|          | 267Β±5ΞΌs              | 287Β±3ΞΌs             |    1.07 | import_iris.Iris.time_exceptions                                                            |
|          | 75.1Β±2ΞΌs             | 77.0Β±0.7ΞΌs          |    1.02 | import_iris.Iris.time_experimental                                                          |
|          | 177Β±2ΞΌs              | 180Β±4ΞΌs             |    1.02 | import_iris.Iris.time_fileformats                                                           |
|          | 271Β±7ΞΌs              | 298Β±4ΞΌs             |    1.1  | import_iris.Iris.time_fileformats__ff                                                       |
|          | 2.64Β±0.07ms          | 2.65Β±0.3ms          |    1.01 | import_iris.Iris.time_fileformats__ff_cross_references                                      |
|          | 75.9Β±1ΞΌs             | 75.5Β±1ΞΌs            |    0.99 | import_iris.Iris.time_fileformats__pp_lbproc_pairs                                          |
|          | 116Β±4ΞΌs              | 126Β±0.9ΞΌs           |    1.09 | import_iris.Iris.time_fileformats_abf                                                       |
|          | 474Β±9ΞΌs              | 552Β±10ΞΌs            |    1.16 | import_iris.Iris.time_fileformats_cf                                                        |
|          | 4.93Β±0.1ms           | 5.69Β±0.3ms          |    1.15 | import_iris.Iris.time_fileformats_dot                                                       |
|          | 71.5Β±0.9ΞΌs           | 72.6Β±1ΞΌs            |    1.02 | import_iris.Iris.time_fileformats_name                                                      |
|          | 256Β±2ΞΌs              | 267Β±5ΞΌs             |    1.04 | import_iris.Iris.time_fileformats_name_loaders                                              |
|          | 116Β±1ΞΌs              | 117Β±0.8ΞΌs           |    1.01 | import_iris.Iris.time_fileformats_netcdf                                                    |
|          | 122Β±2ΞΌs              | 134Β±4ΞΌs             |    1.1  | import_iris.Iris.time_fileformats_nimrod                                                    |
|          | 208Β±4ΞΌs              | 217Β±3ΞΌs             |    1.04 | import_iris.Iris.time_fileformats_nimrod_load_rules                                         |
|          | 788Β±10ΞΌs             | 927Β±7ΞΌs             |    1.18 | import_iris.Iris.time_fileformats_pp                                                        |
|          | 176Β±4ΞΌs              | 177Β±2ΞΌs             |    1    | import_iris.Iris.time_fileformats_pp_load_rules                                             |
|          | 139Β±2ΞΌs              | 133Β±2ΞΌs             |    0.96 | import_iris.Iris.time_fileformats_pp_save_rules                                             |
|          | 554Β±10ΞΌs             | 634Β±10ΞΌs            |    1.14 | import_iris.Iris.time_fileformats_rules                                                     |
|          | 227Β±8ΞΌs              | 259Β±4ΞΌs             |    1.14 | import_iris.Iris.time_fileformats_structured_array_identification                           |
|          | 80.8Β±0.4ΞΌs           | 82.3Β±3ΞΌs            |    1.02 | import_iris.Iris.time_fileformats_um                                                        |
|          | 160Β±2ΞΌs              | 174Β±4ΞΌs             |    1.09 | import_iris.Iris.time_fileformats_um__fast_load                                             |
|          | 142Β±2ΞΌs              | 156Β±2ΞΌs             |    1.09 | import_iris.Iris.time_fileformats_um__fast_load_structured_fields                           |
|          | 74.7Β±2ΞΌs             | 71.6Β±0.6ΞΌs          |    0.96 | import_iris.Iris.time_fileformats_um__ff_replacement                                        |
|          | 80.8Β±2ΞΌs             | 78.6Β±0.9ΞΌs          |    0.97 | import_iris.Iris.time_fileformats_um__optimal_array_structuring                             |
|          | 964Β±6ΞΌs              | 978Β±9ΞΌs             |    1.01 | import_iris.Iris.time_fileformats_um_cf_map                                                 |
|          | 138Β±2ΞΌs              | 145Β±2ΞΌs             |    1.05 | import_iris.Iris.time_io                                                                    |
|          | 186Β±7ΞΌs              | 223Β±6ΞΌs             |    1.2  | import_iris.Iris.time_io_format_picker                                                      |
|          | 213Β±2ΞΌs              | 223Β±2ΞΌs             |    1.05 | import_iris.Iris.time_iris                                                                  |
|          | 130Β±2ΞΌs              | 142Β±2ΞΌs             |    1.09 | import_iris.Iris.time_iterate                                                               |
|          | 8.37Β±0.1ms           | 8.49Β±0.2ms          |    1.01 | import_iris.Iris.time_palette                                                               |
|          | 1.82Β±0.07ms          | 1.81Β±0.03ms         |    1    | import_iris.Iris.time_plot                                                                  |
|          | 221Β±2ΞΌs              | 237Β±5ΞΌs             |    1.07 | import_iris.Iris.time_quickplot                                                             |
|          | 2.24Β±0.05ms          | 2.45Β±0.2ms          |    1.09 | import_iris.Iris.time_std_names                                                             |
|          | 1.88Β±0.04ms          | 1.90Β±0.02ms         |    1.01 | import_iris.Iris.time_symbols                                                               |
|          | 157Β±20ms             | 146Β±20ms            |    0.93 | import_iris.Iris.time_tests                                                                 |
|          | 257Β±7ΞΌs              | 241Β±3ΞΌs             |    0.94 | import_iris.Iris.time_third_party_cartopy                                                   |
|          | 5.12Β±0.06ms          | 5.20Β±0.1ms          |    1.01 | import_iris.Iris.time_third_party_cf_units                                                  |
|          | 122Β±1ΞΌs              | 123Β±1ΞΌs             |    1    | import_iris.Iris.time_third_party_cftime                                                    |
|          | 2.71Β±0.03ms          | 2.76Β±0.03ms         |    1.02 | import_iris.Iris.time_third_party_matplotlib                                                |
|          | 554Β±5ΞΌs              | 572Β±7ΞΌs             |    1.03 | import_iris.Iris.time_third_party_numpy                                                     |
|          | 172Β±4ΞΌs              | 170Β±0.7ΞΌs           |    0.99 | import_iris.Iris.time_third_party_scipy                                                     |
|          | 103Β±3ΞΌs              | 113Β±2ΞΌs             |    1.09 | import_iris.Iris.time_time                                                                  |
|          | 863Β±20ΞΌs             | 875Β±8ΞΌs             |    1.01 | import_iris.Iris.time_util                                                                  |
|          | 9.87Β±0.1ms           | 10.2Β±0.2ms          |    1.03 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'FF')                                  |
|          | 20.6Β±0.6ms           | 21.0Β±0.8ms          |    1.02 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'NetCDF')                              |
|          | 10.2Β±0.4ms           | 10.5Β±0.3ms          |    1.02 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'PP')                                  |
|          | 10.4Β±0.3ms           | 10.7Β±0.3ms          |    1.03 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'FF')                                   |
|          | 17.2Β±0.6ms           | 17.2Β±0.4ms          |    1    | load.LoadAndRealise.time_load((1280, 960, 5), True, 'NetCDF')                               |
|          | 10.5Β±0.3ms           | 10.4Β±0.2ms          |    0.99 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'PP')                                   |
|          | 1.53Β±0.02s           | 1.58Β±0.01s          |    1.03 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'FF')                                    |
|          | 15.8Β±0.4ms           | 15.3Β±0.2ms          |    0.96 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'NetCDF')                                |
|          | 1.55Β±0.02s           | 1.59Β±0s             |    1.03 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'PP')                                    |
|          | 1.53Β±0.01s           | 1.58Β±0.01s          |    1.03 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'FF')                                     |
|          | 16.1Β±0.9ms           | 15.4Β±0.7ms          |    0.96 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'NetCDF')                                 |
|          | 1.56Β±0.01s           | 1.62Β±0.01s          |    1.04 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'PP')                                     |
|          | 5.32Β±0.05ms          | 5.73Β±0.2ms          |    1.08 | load.LoadAndRealise.time_load((50, 50, 2), False, 'FF')                                     |
|          | 14.8Β±0.2ms           | 16.0Β±0.6ms          |    1.08 | load.LoadAndRealise.time_load((50, 50, 2), False, 'NetCDF')                                 |
|          | 5.22Β±0.1ms           | 5.83Β±0.4ms          |    1.12 | load.LoadAndRealise.time_load((50, 50, 2), False, 'PP')                                     |
|          | 5.35Β±0.08ms          | 5.72Β±0.3ms          |    1.07 | load.LoadAndRealise.time_load((50, 50, 2), True, 'FF')                                      |
|          | 14.9Β±0.7ms           | 14.9Β±0.4ms          |    1    | load.LoadAndRealise.time_load((50, 50, 2), True, 'NetCDF')                                  |
|          | 5.28Β±0.1ms           | 5.32Β±0.1ms          |    1.01 | load.LoadAndRealise.time_load((50, 50, 2), True, 'PP')                                      |
|          | 30.5Β±0.8ms           | 31.2Β±1ms            |    1.02 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'NetCDF')                           |
|          | 12.6Β±1ms             | 13.5Β±2ms            |    1.07 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'PP')                               |
|          | 29.0Β±1ms             | 29.5Β±0.7ms          |    1.02 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'FF')                                |
|          | 99.6Β±2ms             | 98.7Β±0.8ms          |    0.99 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'NetCDF')                            |
|          | 28.5Β±1ms             | 29.3Β±1ms            |    1.03 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'PP')                                |
|          | 620Β±6ms              | 616Β±6ms             |    0.99 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'FF')                                 |
|          | 6.22Β±0.2ms           | 6.73Β±0.5ms          |    1.08 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'NetCDF')                             |
|          | 617Β±5ms              | 625Β±5ms             |    1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'PP')                                 |
|          | 625Β±5ms              | 629Β±6ms             |    1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'FF')                                  |
|          | 6.61Β±0.4ms           | 6.32Β±0.2ms          |    0.95 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'NetCDF')                              |
|          | 621Β±6ms              | 624Β±5ms             |    1    | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'PP')                                  |
|          | 2.24Β±0.1ms           | 2.23Β±0.09ms         |    0.99 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'FF')                                  |
|          | 6.28Β±0.3ms           | 6.64Β±0.3ms          |    1.06 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'NetCDF')                              |
|          | 2.25Β±0.2ms           | 2.42Β±0.2ms          |    1.08 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'PP')                                  |
|          | 2.10Β±0.1ms           | 2.43Β±0.04ms         |    1.16 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'FF')                                   |
|          | 6.14Β±0.3ms           | 6.23Β±0.3ms          |    1.02 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'NetCDF')                               |
|          | 2.17Β±0.2ms           | 2.22Β±0.09ms         |    1.02 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'PP')                                   |
|          | 346Β±8ms              | 368Β±8ms             |    1.06 | load.ManyCubes.time_many_cube_load                                                          |
|          | 91.5Β±1ms             | 92.6Β±0.5ms          |    1.01 | load.ManyVars.time_many_var_load                                                            |
|          | 10.3Β±0.6ms           | 10.7Β±0.2ms          |    1.04 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'FF')                            |
|          | 10.2Β±0.5ms           | 11.1Β±0.2ms          |    1.08 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'PP')                            |
|          | 1.53Β±0.01s           | 1.60Β±0.01s          |    1.04 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'FF')                              |
|          | 1.53Β±0.02s           | 1.61Β±0.01s          |    1.05 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'PP')                              |
|          | 5.37Β±0.2ms           | 5.58Β±0.2ms          |    1.04 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'FF')                                 |
|          | 5.23Β±0.2ms           | 5.44Β±0.2ms          |    1.04 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'PP')                                 |
|          | 9.30Β±0.2ms           | 9.86Β±0.4ms          |    1.06 | load.StructuredFF.time_structured_load((1280, 960, 5), False)                               |
|          | 5.77Β±0.2ms           | 5.93Β±0.3ms          |    1.03 | load.StructuredFF.time_structured_load((1280, 960, 5), True)                                |
|          | 1.51Β±0.02s           | 1.58Β±0.02s          |    1.04 | load.StructuredFF.time_structured_load((2, 2, 1000), False)                                 |
|          | 421Β±8ms              | 443Β±7ms             |    1.05 | load.StructuredFF.time_structured_load((2, 2, 1000), True)                                  |
|          | 4.35Β±0.3ms           | 4.62Β±0.4ms          |    1.06 | load.StructuredFF.time_structured_load((2, 2, 2), False)                                    |
|          | 4.34Β±0.2ms           | 4.50Β±0.08ms         |    1.04 | load.StructuredFF.time_structured_load((2, 2, 2), True)                                     |
|          | 159Β±2ms              | 167Β±1ms             |    1.05 | load.TimeConstraint.time_time_constraint(20, 'FF')                                          |
|          | 18.0Β±1ms             | 18.2Β±0.4ms          |    1.01 | load.TimeConstraint.time_time_constraint(20, 'NetCDF')                                      |
|          | 163Β±3ms              | 168Β±2ms             |    1.03 | load.TimeConstraint.time_time_constraint(20, 'PP')                                          |
|          | 32.6Β±0.9ms           | 33.9Β±0.8ms          |    1.04 | load.TimeConstraint.time_time_constraint(3, 'FF')                                           |
|          | 18.1Β±0.6ms           | 17.6Β±0.8ms          |    0.97 | load.TimeConstraint.time_time_constraint(3, 'NetCDF')                                       |
|          | 33.2Β±0.6ms           | 33.1Β±1ms            |    1    | load.TimeConstraint.time_time_constraint(3, 'PP')                                           |
|          | 21.4Β±0.6ms           | 24.2Β±1ms            |    1.13 | load.ugrid.BasicLoading.time_load_file(1)                                                   |
|          | 56.6Β±2ms             | 60.0Β±0.9ms          |    1.06 | load.ugrid.BasicLoading.time_load_file(200000)                                              |
|          | 12.6Β±1ms             | 13.0Β±0.3ms          |    1.04 | load.ugrid.BasicLoading.time_load_mesh(1)                                                   |
|          | 23.6Β±1ms             | 24.0Β±2ms            |    1.02 | load.ugrid.BasicLoading.time_load_mesh(200000)                                              |
|          | 23.5Β±0.7ms           | 24.9Β±0.9ms          |    1.06 | load.ugrid.BasicLoadingTime.time_load_file(1)                                               |
|          | 23.3Β±0.4ms           | 24.4Β±0.4ms          |    1.05 | load.ugrid.BasicLoadingTime.time_load_file(200000)                                          |
|          | 11.5Β±0.4ms           | 13.4Β±0.6ms          |    1.17 | load.ugrid.BasicLoadingTime.time_load_mesh(1)                                               |
|          | 15.3Β±0.7ms           | 16.2Β±0.5ms          |    1.06 | load.ugrid.BasicLoadingTime.time_load_mesh(200000)                                          |
|          | 24.5Β±0.6ms           | 27.2Β±0.9ms          |    1.11 | load.ugrid.Callback.time_load_file_callback(1)                                              |
|          | 67.2Β±2ms             | 72.3Β±3ms            |    1.08 | load.ugrid.Callback.time_load_file_callback(200000)                                         |
|          | 24.5Β±0.9ms           | 27.8Β±1ms            |    1.14 | load.ugrid.CallbackTime.time_load_file_callback(1)                                          |
|          | 26.2Β±1ms             | 28.3Β±1ms            |    1.08 | load.ugrid.CallbackTime.time_load_file_callback(200000)                                     |
|          | 6.19Β±0.2ms           | 6.78Β±0.4ms          |    1.1  | load.ugrid.DataRealisation.time_realise_data(10000)                                         |
|          | 9.48Β±0.4ms           | 9.73Β±0.6ms          |    1.03 | load.ugrid.DataRealisation.time_realise_data(200000)                                        |
|          | 46.7Β±3ms             | 50.3Β±4ms            |    1.08 | load.ugrid.DataRealisationTime.time_realise_data(10000)                                     |
|          | 864Β±10ms             | 871Β±30ms            |    1.01 | load.ugrid.DataRealisationTime.time_realise_data(200000)                                    |
|          | 1.50Β±0.05s           | 1.51Β±0.06s          |    1.01 | merge_concat.Concatenate.time_concatenate(False)                                            |
|          | 460Β±10ms             | 469Β±10ms            |    1.02 | merge_concat.Concatenate.time_concatenate(True)                                             |
|          | 2.42Β±0G              | 2.43Β±0.01G          |    1    | merge_concat.Concatenate.tracemalloc_concatenate(False)                                     |
|          | 110Β±2M               | 121Β±7M              |    1.09 | merge_concat.Concatenate.tracemalloc_concatenate(True)                                      |
|          | 40.2Β±2ms             | 38.7Β±3ms            |    0.96 | merge_concat.Merge.time_merge                                                               |
|          | 126Β±0.03M            | 126Β±0.03M           |    1    | merge_concat.Merge.tracemalloc_merge                                                        |
|          | 384Β±5ns              | 379Β±2ns             |    0.99 | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(50)              |
|          | 228Β±2ms              | 202Β±2ms             |    0.88 | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(500)             |
|          | 772Β±0.5k             | 771Β±0.6k            |    1    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(50)       |
|          | 60.2Β±0M              | 60.2Β±0M             |    1    | mesh.utils.regions_combine.CombineRegionsComputeRealData.tracemalloc_compute_data(500)      |
|          | 19.7Β±0.4ms           | 20.5Β±0.8ms          |    1.04 | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(50)           |
|          | 23.0Β±0.7ms           | 23.7Β±0.7ms          |    1.03 | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(500)          |
|          | 1.27Β±0.09M           | 1.23Β±0M             |    0.97 | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(50)    |
|          | 25Β±0.09M             | 25Β±0.01M            |    1    | mesh.utils.regions_combine.CombineRegionsCreateCube.tracemalloc_create_combined_cube(500)   |
|          | 190Β±6ms              | 203Β±6ms             |    1.07 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(50)         |
|          | 722Β±20ms             | 698Β±4ms             |    0.97 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(500)        |
|          | 1.51Β±0.01M           | 1.62Β±0.02M          |    1.08 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(50)  |
|          | 96.5Β±0.03M           | 96.7Β±0.03M          |    1    | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.tracemalloc_stream_file2file(500) |
|          | 127Β±10ms             | 136Β±5ms             |    1.07 | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(50)                             |
|          | 652Β±20ms             | 631Β±9ms             |    0.97 | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(500)                            |
|          | 1.43Β±0.02M           | 1.5Β±0.02M           |    1.05 | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(50)                      |
|          | 96.4Β±0.04M           | 96.6Β±0.02M          |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.tracemalloc_save(500)                     |
|          | 2.1752849999999997   | 2.1752849999999997  |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(50)                  |
|          | 216.01528499999998   | 216.01528499999998  |    1    | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(500)                 |
|          | 6.93Β±0.1ms           | 7.09Β±0.4ms          |    1.02 | plot.AuxSort.time_aux_sort                                                                  |
|          | 86.4Β±3ms             | 85.9Β±3ms            |    0.99 | regridding.CurvilinearRegridding.time_regrid_pic                                            |
|          | 136Β±3M               | 136Β±3M              |    1    | regridding.CurvilinearRegridding.tracemalloc_regrid_pic                                     |
|          | 111Β±5ms              | 114Β±7ms             |    1.03 | regridding.HorizontalChunkedRegridding.time_regrid_area_w                                   |
|          | 62.1Β±2ms             | 72.3Β±2ms            |    1.16 | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid                          |
|          | 107Β±0.1M             | 107Β±0.3M            |    1    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w                            |
|          | 147Β±0.04M            | 147Β±0.04M           |    1    | regridding.HorizontalChunkedRegridding.tracemalloc_regrid_area_w_new_grid                   |
|          | 7.98Β±0.6ms           | 7.77Β±0.3ms          |    0.97 | save.NetcdfSave.time_netcdf_save_cube(50, False)                                            |
|          | 136Β±4ms              | 135Β±4ms             |    0.99 | save.NetcdfSave.time_netcdf_save_cube(50, True)                                             |
|          | 49.3Β±0.9ms           | 48.9Β±0.9ms          |    0.99 | save.NetcdfSave.time_netcdf_save_cube(600, False)                                           |
|          | 571Β±6ms              | 566Β±9ms             |    0.99 | save.NetcdfSave.time_netcdf_save_cube(600, True)                                            |
|          | 90.2Β±0.9ns           | 91.1Β±0.8ns          |    1.01 | save.NetcdfSave.time_netcdf_save_mesh(50, False)                                            |
|          | 115Β±2ms              | 109Β±4ms             |    0.95 | save.NetcdfSave.time_netcdf_save_mesh(50, True)                                             |
|          | 92.1Β±1ns             | 93.1Β±1ns            |    1.01 | save.NetcdfSave.time_netcdf_save_mesh(600, False)                                           |
|          | 500Β±8ms              | 506Β±20ms            |    1.01 | save.NetcdfSave.time_netcdf_save_mesh(600, True)                                            |
|          | 31.8Β±0.4k            | 30.5Β±0.4k           |    0.96 | save.NetcdfSave.tracemalloc_netcdf_save(50, False)                                          |
|          | 1.82Β±0.2M            | 1.92Β±0.1M           |    1.06 | save.NetcdfSave.tracemalloc_netcdf_save(50, True)                                           |
|          | 31.7Β±0.4k            | 30.6Β±0.5k           |    0.97 | save.NetcdfSave.tracemalloc_netcdf_save(600, False)                                         |
|          | 208Β±20M              | 225Β±20M             |    1.08 | save.NetcdfSave.tracemalloc_netcdf_save(600, True)                                          |
|          | 40.7Β±1ms             | 41.5Β±1ms            |    1.02 | stats.PearsonR.time_lazy                                                                    |
|          | 10.6Β±0.3ms           | 10.2Β±0.2ms          |    0.96 | stats.PearsonR.time_real                                                                    |
|          | 29.5Β±0.6M            | 30.6Β±2M             |    1.04 | stats.PearsonR.tracemalloc_lazy                                                             |
|          | 18.3Β±0.01M           | 18.3Β±0M             |    1    | stats.PearsonR.tracemalloc_real                                                             |
|          | 30.2Β±1ms             | 30.3Β±0.9ms          |    1    | trajectory.TrajectoryInterpolation.time_trajectory_linear                                   |
|          | 66.5Β±0.6ms           | 65.0Β±1ms            |    0.98 | trajectory.TrajectoryInterpolation.time_trajectory_nearest                                  |
|          | 17.6Β±0.02M           | 17.6Β±0.04M          |    1    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_linear                            |
|          | 7.75Β±0.02M           | 7.77Β±0.05M          |    1    | trajectory.TrajectoryInterpolation.tracemalloc_trajectory_nearest                           |

Benchmarks that have got worse:

| Change   | Before [41414842]    | After [529ab998]    |   Ratio | Benchmark (Parameter)                                         |
|----------|----------------------|---------------------|---------|---------------------------------------------------------------|
| +        | 798Β±20ΞΌs             | 995Β±20ΞΌs            |    1.25 | import_iris.Iris.time__concatenate                            |
| +        | 187Β±5ΞΌs              | 227Β±4ΞΌs             |    1.22 | import_iris.Iris.time__constraints                            |
| +        | 894Β±10ΞΌs             | 1.09Β±0.02ms         |    1.22 | import_iris.Iris.time__merge                                  |
| +        | 173Β±2ΞΌs              | 209Β±5ΞΌs             |    1.21 | import_iris.Iris.time_common_mixin                            |
| +        | 76.5Β±0.5ΞΌs           | 94.4Β±2ΞΌs            |    1.23 | iterate.IZip.time_izip                                        |
| +        | 23.8Β±1ms             | 29.6Β±0.9ms          |    1.24 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'FF') |

Generated by GHA run 21211958251

@HGWright HGWright merged commit ac7c7cf into SciTools:main Jan 21, 2026
22 checks passed
@github-project-automation github-project-automation bot moved this from In review to Done in Iris v3.15 Jan 21, 2026
tkknight added a commit to tkknight/iris that referenced this pull request Jan 23, 2026
* upstream/main:
  SPEC0 - support Python 3.12 to 3.14 (SciTools#6816)
tkknight added a commit to tkknight/iris that referenced this pull request Jan 24, 2026
* upstream/main:
  DOCS: Add gallery carousel to docs homepage (SciTools#6884)
  SPEC0 - support Python 3.12 to 3.14 (SciTools#6816)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

benchmark_this Request that this pull request be benchmarked to check if it introduces performance shifts

Projects

Status: Done
Status: Done

Development

Successfully merging this pull request may close these issues.

Remove Python<3.14 pin

4 participants