Skip to content

check-manifest became super slow #141

@jugmac00

Description

@jugmac00

For e.g. https://github.com/jugmac00/flask-reuploaded (but also for my other projects), I notice an increased runtime for the checks.

The biggest jump was from version 0.40 to 0.41, but it looks like it is getting slower with each release...

I do run check-manifest via pre-commit, but I could also reproduce the problem with a standalone version of check-manifest.

I only had a quick look and looks like the pyproject.toml support could have introduced the degraded performance. The runtime difference between 0.45 and 0.46 can be hardly explained by the changelog.

no check-manifest

❯ time pre-commit run --all-files
isort....................................................................Passed
Debug Statements (Python)................................................Passed
flake8...................................................................Passed
pyupgrade................................................................Passed
check-python-versions....................................................Passed
bandit...................................................................Passed

real    0m1,113s
user    0m1,760s
sys     0m0,245s



0.40

❯ time pre-commit run --all-files
isort....................................................................Passed
Debug Statements (Python)................................................Passed
flake8...................................................................Passed
pyupgrade................................................................Passed
check-python-versions....................................................Passed
check-manifest...........................................................Passed
bandit...................................................................Passed

real    0m1,577s


0.41

❯ time pre-commit run --all-files
isort....................................................................Passed
Debug Statements (Python)................................................Passed
flake8...................................................................Passed
pyupgrade................................................................Passed
check-python-versions....................................................Passed
check-manifest...........................................................Passed
bandit...................................................................Passed

real    0m4,366s
user    0m4,471s
sys     0m0,511s


0.42

❯ time pre-commit run --all-files
isort....................................................................Passed
Debug Statements (Python)................................................Passed
flake8...................................................................Passed
pyupgrade................................................................Passed
check-python-versions....................................................Passed
check-manifest...........................................................Passed
bandit...................................................................Passed

real    0m4,401s
user    0m4,557s
sys     0m0,456s

0.43

❯ time pre-commit run --all-files
isort....................................................................Passed
Debug Statements (Python)................................................Passed
flake8...................................................................Passed
pyupgrade................................................................Passed
check-python-versions....................................................Passed
check-manifest...........................................................Passed
bandit...................................................................Passed

real    0m4,743s
user    0m4,808s
sys     0m0,503s

0.44

❯ time pre-commit run --all-files
isort....................................................................Passed
Debug Statements (Python)................................................Passed
flake8...................................................................Passed
pyupgrade................................................................Passed
check-python-versions....................................................Passed
check-manifest...........................................................Passed
bandit...................................................................Passed

0.45

❯ time pre-commit run --all-files
isort....................................................................Passed
Debug Statements (Python)................................................Passed
flake8...................................................................Passed
pyupgrade................................................................Passed
check-python-versions....................................................Passed
check-manifest...........................................................Passed
bandit...................................................................Passed

real    0m8,464s
user    0m8,068s
sys     0m0,878s

0.46

❯ time pre-commit run --all-files
isort....................................................................Passed
Debug Statements (Python)................................................Passed
flake8...................................................................Passed
pyupgrade................................................................Passed
check-python-versions....................................................Passed
check-manifest...........................................................Passed
bandit...................................................................Passed

real    0m10,674s
user    0m10,093s
sys     0m1,118s

tests without pre-commit

0.40

❯ time check-manifest 
lists of files in version control and sdist match

real	0m0,440s
user	0m0,388s
sys	0m0,055s

0.41

❯ time check-manifest 
lists of files in version control and sdist match

real	0m3,311s
user	0m2,848s
sys	0m0,245s

0.45

❯ time check-manifest 
lists of files in version control and sdist match

real	0m9,664s
user	0m8,324s
sys	0m0,812s

0.46

❯ time check-manifest 
lists of files in version control and sdist match

real	0m10,041s
user	0m8,671s
sys	0m0,875s

So, the changelog maybe is not really complete - as even without using pre-commit there is a performance degradation between 0.45 and 0.46 which only changelog entry says pre-commit now uses Python 3.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions