This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: dulwich_log performance regression in 3.10
Type: performance Stage: resolved
Components: Versions: Python 3.11, Python 3.10
process
Status: closed Resolution: rejected
Dependencies: Superseder:
Assigned To: Nosy List: brandtbucher, iritkatriel, kj, methane, pablogsal
Priority: normal Keywords:

Created on 2021-09-30 13:09 by kj, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (7)
msg402955 - (view) Author: Ken Jin (kj) * (Python committer) Date: 2021-09-30 13:09
Somewhere between May02-May11, dulwich_log benchmark on pyperformance had a major performance regression on the 3.10 branch. https://speed.python.org/timeline/?exe=12&base=&ben=dulwich_log&env=1&revs=200&equid=off&quarts=on&extr=on

For a start, we could git bisect with pyperformance. FWIW, I couldn't reproduce the perf regression on Windows. So it might be a Linux-only thing.
msg402978 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-09-30 19:23
Looks like this is using a 3rd party module (dulwitch.repo). Could it be a new version of that?
msg403006 - (view) Author: Ken Jin (kj) * (Python committer) Date: 2021-10-01 10:04
Ooh thanks Irit, I hadn't considered that. I thought that versions were fixed, but it seems that we *do* change the 3rd party package versions once in a while.

In that time period, we bumped dulwich from 0.20.20 to 0.20.21 https://github.com/python/pyperformance/commit/6484a40909312f373c8cfa8c05faec592288abb3.

That dulwich release had the following commits: https://github.com/dulwich/dulwich/compare/dulwich-0.20.21...master.

This may also explain why I couldn't see any perf regression in dulwich between 3.10a4 and 3.10rc2 on Windows.

Once I verify this, I'll close this issue and open one on pyperformance repo.
msg403036 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-10-01 22:29
The pyperformance version in pinned on speed.python.org. Moreover, the timeline tracks the main branch, not the 3.10 branch.
msg403037 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2021-10-01 22:29
We use a pinned version of pyperformance so the code has not changed. I need to manually bump the version and when they happens I wipe all previous benchmarks
msg403286 - (view) Author: Inada Naoki (methane) * (Python committer) Date: 2021-10-06 04:50
I can not confirm performance regression between 33ec88ac and 23ae2c3b.

```
Performance version: 1.0.2
Python version: 3.10.0a7+ (64-bit) revision 33ec88ac81
Report on Linux-5.4.0-81-generic-x86_64-with-glibc2.31
Number of logical CPUs: 8
Start date: 2021-10-06 13:47:33.468553
End date: 2021-10-06 13:47:52.054876

### dulwich_log ###
Mean +- std dev: 99.7 ms +- 0.9 ms

Performance version: 1.0.2
Python version: 3.11.0a0 (64-bit) revision 23ae2c3bac
Report on Linux-5.4.0-81-generic-x86_64-with-glibc2.31
Number of logical CPUs: 8
Start date: 2021-10-06 13:47:07.767177
End date: 2021-10-06 13:47:26.175560

### dulwich_log ###
Mean +- std dev: 98.6 ms +- 0.9 ms
```
msg404187 - (view) Author: Ken Jin (kj) * (Python committer) Date: 2021-10-18 14:03
Considering both Inada-san and I can't repro this on Linux and Windows respectively, I'm closing this and blaming code placement or some magic. Thanks everyone.
History
Date User Action Args
2022-04-11 14:59:50adminsetgithub: 89493
2021-10-18 14:03:36kjsetstatus: open -> closed
resolution: rejected
messages: + msg404187

stage: resolved
2021-10-06 04:50:07methanesetnosy: + methane
messages: + msg403286
2021-10-01 22:29:41pablogsalsetnosy: + pablogsal, - vstinner
title: speed.python.org: dulwich_log performance regression -> dulwich_log performance regression in 3.10
messages: + msg403037
versions: + Python 3.10
2021-10-01 22:29:20vstinnersetnosy: + vstinner
title: dulwich_log performance regression in 3.10 -> speed.python.org: dulwich_log performance regression
messages: + msg403036

versions: - Python 3.10
2021-10-01 10:04:57kjsetmessages: + msg403006
2021-09-30 19:23:56iritkatrielsetmessages: + msg402978
2021-09-30 15:23:23brandtbuchersetnosy: + brandtbucher
2021-09-30 13:09:28kjcreate