amazon-ion / ion-python

A Python implementation of Amazon Ion.
https://amazon-ion.github.io/ion-docs/
Apache License 2.0
260 stars 51 forks source link

Refactor performance regression workflow #283

Closed popematt closed 1 year ago

popematt commented 1 year ago

Issue #, if available:

None

Description of changes:

This builds on #282 and must be merged after it. The perf workflow will not run successfully until this PR is rebased on top of #282. If you prefer, I can combine this into a single PR, but I thought it might be easier to review if I break them up.

You can see an example of the new workflow here. There is still some work to be done on getting the right metric for the performance benchmark comparison. I'm beginning to suspect that ops/s might be more stable for slow functions (e.g. running Ion on PyPy or using very large sample data) because it puts the larger number in the denominator, and we might also find that a proper statistical comparison is necessary to allow us to compare two sample means while taking into account the error from both samples.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.