Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Potential regression induced by PR #56037 #57366

Open
rhshadrach opened this issue Feb 11, 2024 · 4 comments
Open

Potential regression induced by PR #56037 #57366

rhshadrach opened this issue Feb 11, 2024 · 4 comments
Labels
Non-Nano datetime64/timedelta64 with non-nanosecond resolution Performance Memory or execution speed performance Regression Functionality that used to work in a prior pandas version
Milestone

Comments

@rhshadrach
Copy link
Member

rhshadrach commented Feb 11, 2024

PR #56037 may have induced a performance regression. If it was a necessary behavior change, this may have been expected and everything is okay.

Please check the links below. If any ASVs are parameterized, the combinations of parameters that a regression has been detected for appear as subbullets.

Subsequent benchmarks may have skipped some commits. The link below lists the commits that are between the two benchmark runs where the regression was identified.

05c32ba...d9f70b3

cc @jbrockmendel

@rhshadrach rhshadrach added Non-Nano datetime64/timedelta64 with non-nanosecond resolution Performance Memory or execution speed performance Regression Functionality that used to work in a prior pandas version labels Feb 11, 2024
@rhshadrach rhshadrach added this to the 2.2.2 milestone Feb 11, 2024
@rtlee9
Copy link
Contributor

rtlee9 commented Mar 1, 2024

My local asv benchmarking shows the regression was introduced in d9f70b3 rather than the previous commits

(venv) ➜  asv_bench git:(d9f70b397a) asv continuous -f 1.1 -E virtualenv HEAD~ HEAD -b inference.ToDatetimeFromIntsFloats.time_                                                                                                                                                                                                 Couldn't load asv.plugins._mamba_helpers because                                                                                                                                                                                                                                                                                No module named 'libmambapy'                                                                                                                                                                                                                                                                                                    · Creating environments                                                                                                                                                                                                                                                                                                         · Discovering benchmarks                                                                                                                                                                                                                                                                                                        ·· Uninstalling from virtualenv-py3.10-Cython3.0.5-jinja2-matplotlib-meson-meson-python-numba-numexpr-odfpy-openpyxl-pyarrow-python-build-scipy-sqlalchemy-tables-xlrd-xlsxwriter.                                                                                                                                              ·· Installing d9f70b39 <v2.3.0.dev0~271> into virtualenv-py3.10-Cython3.0.5-jinja2-matplotlib-meson-meson-python-numba-numexpr-odfpy-openpyxl-pyarrow-python-build-scipy-sqlalchemy-tables-xlrd-xlsxwriter.                                                                                                                     · Running 12 total benchmarks (2 commits * 1 environments * 6 benchmarks)                                                                                                                                                                                                                                                       [ 0.00%] · For pandas commit e37ff77b <v2.3.0.dev0~272> (round 1/2):                                                                                                                                                                                                                                                            [ 0.00%] ·· Building for virtualenv-py3.10-Cython3.0.5-jinja2-matplotlib-meson-meson-python-numba-numexpr-odfpy-openpyxl-pyarrow-python-build-scipy-sqlalchemy-tables-xlrd-xlsxwriter..
[ 0.00%] ·· Benchmarking virtualenv-py3.10-Cython3.0.5-jinja2-matplotlib-meson-meson-python-numba-numexpr-odfpy-openpyxl-pyarrow-python-build-scipy-sqlalchemy-tables-xlrd-xlsxwriter                                                                                                                                           [ 4.17%] ··· Running (inference.ToDatetimeFromIntsFloats.time_nanosec_float64--)......                                                                                                                                                                                                                                          [25.00%] · For pandas commit d9f70b39 <v2.3.0.dev0~271> (round 1/2):                                                                                                                                                                                                                                                            [25.00%] ·· Building for virtualenv-py3.10-Cython3.0.5-jinja2-matplotlib-meson-meson-python-numba-numexpr-odfpy-openpyxl-pyarrow-python-build-scipy-sqlalchemy-tables-xlrd-xlsxwriter..
[25.00%] ·· Benchmarking virtualenv-py3.10-Cython3.0.5-jinja2-matplotlib-meson-meson-python-numba-numexpr-odfpy-openpyxl-pyarrow-python-build-scipy-sqlalchemy-tables-xlrd-xlsxwriter
[29.17%] ··· Running (inference.ToDatetimeFromIntsFloats.time_nanosec_float64--)......                                                                                                                                                                                                                                          [50.00%] · For pandas commit d9f70b39 <v2.3.0.dev0~271> (round 2/2):                                                                                                                                                                                                                                                            [50.00%] ·· Benchmarking virtualenv-py3.10-Cython3.0.5-jinja2-matplotlib-meson-meson-python-numba-numexpr-odfpy-openpyxl-pyarrow-python-build-scipy-sqlalchemy-tables-xlrd-xlsxwriter
[54.17%] ··· inference.ToDatetimeFromIntsFloats.time_nanosec_float64                                                                                 260±3ms
[58.33%] ··· inference.ToDatetimeFromIntsFloats.time_nanosec_int64                                                                               3.16±0.09ms
[62.50%] ··· inference.ToDatetimeFromIntsFloats.time_nanosec_uint64                                                                               3.03±0.2ms                                                                                                                                                                    [66.67%] ··· inference.ToDatetimeFromIntsFloats.time_sec_float64                                                                                     262±2ms                                                                                                                                                                    [70.83%] ··· inference.ToDatetimeFromIntsFloats.time_sec_int64                                                                                    31.1±0.3ms
[75.00%] ··· inference.ToDatetimeFromIntsFloats.time_sec_uint64                                                                                   30.9±0.2ms
[75.00%] · For pandas commit e37ff77b <v2.3.0.dev0~272> (round 2/2):
[75.00%] ·· Building for virtualenv-py3.10-Cython3.0.5-jinja2-matplotlib-meson-meson-python-numba-numexpr-odfpy-openpyxl-pyarrow-python-build-scipy-sqlalchemy-tables-xlrd-xlsxwriter..
[75.00%] ·· Benchmarking virtualenv-py3.10-Cython3.0.5-jinja2-matplotlib-meson-meson-python-numba-numexpr-odfpy-openpyxl-pyarrow-python-build-scipy-sqlalchemy-tables-xlrd-xlsxwriter
[79.17%] ··· inference.ToDatetimeFromIntsFloats.time_nanosec_float64                                                                              6.17±0.3ms
[83.33%] ··· inference.ToDatetimeFromIntsFloats.time_nanosec_int64                                                                               2.93±0.06ms
[87.50%] ··· inference.ToDatetimeFromIntsFloats.time_nanosec_uint64                                                                              2.91±0.06ms
[91.67%] ··· inference.ToDatetimeFromIntsFloats.time_sec_float64                                                                                  5.51±0.3ms
[95.83%] ··· inference.ToDatetimeFromIntsFloats.time_sec_int64                                                                                    31.0±0.3ms
[100.00%] ··· inference.ToDatetimeFromIntsFloats.time_sec_uint64                                                                                  30.9±0.08ms
| Change   | Before [e37ff77b] <v2.3.0.dev0~272>   | After [d9f70b39] <v2.3.0.dev0~271>   |   Ratio | Benchmark (Parameter)                                   |
|----------|---------------------------------------|--------------------------------------|---------|---------------------------------------------------------|
| +        | 5.51±0.3ms                            | 262±2ms                              |   47.56 | inference.ToDatetimeFromIntsFloats.time_sec_float64     |
| +        | 6.17±0.3ms                            | 260±3ms                              |   42.2  | inference.ToDatetimeFromIntsFloats.time_nanosec_float64 |

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE DECREASED.

@rhshadrach
Copy link
Member Author

Thanks @rtlee9 - isn't that commit associated with the highlighted PR in the OP?

@rtlee9
Copy link
Contributor

rtlee9 commented Mar 2, 2024

Yeah I was just confirming it was that commit in particular, since the asv benchmarks had skipped a few commits

Subsequent benchmarks may have skipped some commits. The link below lists the commits that are between the two benchmark runs where the regression was identified.

@rhshadrach
Copy link
Member Author

Ah - thanks for confirming.

@lithomas1 lithomas1 modified the milestones: 2.2.2, 2.2.3 Apr 10, 2024
@lithomas1 lithomas1 modified the milestones: 2.2.3, 2.3 Sep 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Non-Nano datetime64/timedelta64 with non-nanosecond resolution Performance Memory or execution speed performance Regression Functionality that used to work in a prior pandas version
Projects
None yet
Development

No branches or pull requests

3 participants