# Per commit performance tests

**URL:** <https://anchorecommunity.discourse.group/t/per-commit-performance-tests/332>\
**Category:** Syft\
**Created:** [February 7, 2025, 5:44pm UTC](https://anchorecommunity.discourse.group/t/per-commit-performance-tests/332 "2025-02-07T17:44:42Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![popey](https://yyz2.discourse-cdn.com/free1/user_avatar/anchorecommunity.discourse.group/popey/32/429_2.png) [@popey](https://anchorecommunity.discourse.group/u/popey)\
**Post date:** [February 7, 2025, 5:44pm UTC](https://anchorecommunity.discourse.group/t/per-commit-performance-tests/332/1 "2025-02-07T17:44:42Z")

</div>

After a conversation with @kzantow on Syft issue [3636](https://github.com/anchore/syft/pull/3636) I made a little python script called [measure-syft](https://github.com/popey/measure-syft). It has two purposes:

1. Compare the base performance of the main branch, and a pending pull request - such as we did [here](https://github.com/anchore/syft/pull/3636#issuecomment-2643193899)
2. Compare the last stable release with each commit to main, to see if performance has changed at all.

As a test, I ran it with a fairly conservative container - the nextcloud:latest one. That means there’s not a huge difference between each commit. Here’s the result.

* * *

# Syft Performance Test Results

Date: 2025-02-07 16:24:58  
Container: [docker.io/nextcloud:latest](http://docker.io/nextcloud:latest)  
Environment Variables:

- SYFT\_CHECK\_FOR\_APP\_UPDATE=false
- SYFT\_PARALLELISM=24

## Results

| Version/Description | Commit | Min (s) | Max (s) | Avg (s) |
| --- | --- | --- | --- | --- |
| v1.19.0 | - | 20.12 | 20.90 | 20.39 |
| chore(ci): fix composite GitHub action path in dependabot config (#3611) | [b7f78a6](https://github.com/anchore/syft/commit/b7f78a6a8bd1e6bf70cf9b7fda7f7d979f2d19fd) | 20.30 | 20.93 | 20.59 |
| chore(deps): bump actions/cache in /.github/actions/bootstrap (#3613) | [1814a0a](https://github.com/anchore/syft/commit/1814a0aff5e5f57c4c69b4272d82587e14e532f7) | 20.05 | 20.67 | 20.43 |
| chore(deps): bump actions/setup-go in /.github/actions/bootstrap (#3612) | [2abfa4e](https://github.com/anchore/syft/commit/2abfa4eb36347394f199d9efa321359cd160534f) | 20.27 | 21.33 | 20.76 |
| chore(deps): bump [GitHub - moby/moby: The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems](http://github.com/docker/docker) (#3610) | [dffa52f](https://github.com/anchore/syft/commit/dffa52f950efad9c8134baeb9505f189b7205b43) | 20.18 | 20.46 | 20.30 |
| chore(deps): bump [github.com/go-git/go-git/v5](http://github.com/go-git/go-git/v5) from 5.13.1 to 5.13.2 (#3609) | [ad83f7c](https://github.com/anchore/syft/commit/ad83f7c2cb49f24be78becf934d3f697281e91e5) | 20.30 | 20.84 | 20.54 |
| chore(deps): bump github/codeql-action from 3.28.2 to 3.28.3 (#3608) | [a6d7ff6](https://github.com/anchore/syft/commit/a6d7ff69a92cb15f434be04de3458fbf3bc9ce83) | 20.24 | 20.65 | 20.42 |
| chore(deps): update tools to latest versions (#3607) | [1c4743f](https://github.com/anchore/syft/commit/1c4743fca210ef34e1ed330e5ad1ad35b48d2d48) | 19.94 | 20.97 | 20.46 |
| chore(deps): bump anchore/sbom-action from 0.17.9 to 0.18.0 (#3619) | [a5a2b83](https://github.com/anchore/syft/commit/a5a2b83fe17f3fb97fbb83bc723dc697c9fa2162) | 20.24 | 21.57 | 20.89 |
| chore(deps): bump github/codeql-action from 3.28.3 to 3.28.4 (#3618) | [5ea952e](https://github.com/anchore/syft/commit/5ea952e5b20c55243629aa4af4e9c26c860ad5a7) | 20.25 | 20.61 | 20.42 |
| chore(deps): bump github/codeql-action from 3.28.4 to 3.28.5 (#3622) | [27b8296](https://github.com/anchore/syft/commit/27b8296630e500286a9d2f5fda2e413c90b1eceb) | 20.13 | 21.05 | 20.53 |
| chore(deps): bump [github.com/bmatcuk/doublestar/v4](http://github.com/bmatcuk/doublestar/v4) from 4.8.0 to 4.8.1 (#3621) | [1a2a7cb](https://github.com/anchore/syft/commit/1a2a7cb59f23ecc966aef0aabace483757d3aa02) | 20.05 | 21.04 | 20.63 |
| chore(deps): update CPE dictionary index (#3620) | [5b009db](https://github.com/anchore/syft/commit/5b009dbc7ba222cce15049a48d3529fbcd3d4914) | 20.16 | 20.98 | 20.43 |
| chore(deps): bump github/codeql-action from 3.28.5 to 3.28.6 (#3625) | [cc80e61](https://github.com/anchore/syft/commit/cc80e6106c96af8a40f21e820ebfb5d6d833fee5) | 20.08 | 20.80 | 20.46 |
| fix: update namespace value for OpenSUSE distros (#3615) | [58dc43d](https://github.com/anchore/syft/commit/58dc43de862cd0d7d624a7e625f80018b0c1aac7) | 20.25 | 20.68 | 20.43 |
| feat: update licenses to including license content when SPDX expressions are unable to be determined (#3366) | [f7e767f](https://github.com/anchore/syft/commit/f7e767fc25a40c623e827404fc2887886e6884e0) | 20.33 | | |
| 21.21 | 20.63 | | | |
| chore(deps): bump github/codeql-action from 3.28.6 to 3.28.7 (#3628) | [3fc0e04](https://github.com/anchore/syft/commit/3fc0e0485e35e81dce99e234146a54575a691777) | 20.17 | 21.26 | 20.52 |
| chore(deps): bump [GitHub - gkampitakis/go-snaps: Jest-like snapshot testing in Go 📸](http://github.com/gkampitakis/go-snaps) from 0.5.8 to 0.5.9 (#3627) | [b89304d](https://github.com/anchore/syft/commit/b89304d9b5fb8c8aa9321773c2d9f5b5f78e10f3) | 20.14 | 21.69 | 20.62 |
| docs: update descriptions with correct options (#3630) | [d5e52bc](https://github.com/anchore/syft/commit/d5e52bc2cecc8a9735eb30d5620847076ebdde1a) | 20.21 | 20.41 | 20.29 |
| chore(deps): bump github/codeql-action from 3.28.7 to 3.28.8 (#3634) | [bdf6804](https://github.com/anchore/syft/commit/bdf680426de6fc22a7eec411da3a80151092dd6b) | 20.16 | 21.29 | 20.48 |
| chore(deps): update tools to latest versions (#3635) | [a16e374](https://github.com/anchore/syft/commit/a16e374a5053e88660aa848c6ae635cfcbfe6ccc) | 20.11 | 20.97 | 20.45 |
| feat: syft 3435 - add file components to cyclonedx bom output when file metadata is available (#3539) | [9a9195e](https://github.com/anchore/syft/commit/9a9195e5c4db7cdb7a956900dd808f55d955cc3f) | 20.33 | 24.00 | 21.21 |
| chore(deps): update CPE dictionary index (#3638) | [7a69f6f](https://github.com/anchore/syft/commit/7a69f6fdd7bdc944314c35e682b2b4900355bee0) | 20.24 | 21.02 | 20.60 |
| chore(deps): update tools to latest versions (#3637) | [4dc86a0](https://github.com/anchore/syft/commit/4dc86a06c791bc0801f0c53ea5252ce5bbff464f) | 20.27 | 20.76 | 20.44 |
| chore: replace all shorthand tags of mapstruct → mapstructure (#3633) | [5e2ba43](https://github.com/anchore/syft/commit/5e2ba43328ff82ea9c424cee113fa792d13bd52e) | 20.25 | 20.64 | 20.40 |
| Add file catalogers to selection configuration (#3505) | [684b6e3](https://github.com/anchore/syft/commit/684b6e3f9809a95ba08cb83c8d0661ab22eed8cc) | 20.22 | 20.65 | 20.42 |
| chore(deps): bump [The Go Programming Language](http://golang.org/x/mod) from 0.22.0 to 0.23.0 (#3644) | [79ea956](https://github.com/anchore/syft/commit/79ea956f18e286746f385b9ca88958bf8c44f987) | 20.33 | 22.01 | 20.73 |
| chore(deps): bump sigstore/cosign-installer from 3.7.0 to 3.8.0 (#3642) | [10ba5aa](https://github.com/anchore/syft/commit/10ba5aa9e66884f68bf70604c586f37bedc95c11) | 20.23 | 20.81 | 20.39 |
| chore(deps): update tools to latest versions (#3641) | [7bab6e9](https://github.com/anchore/syft/commit/7bab6e9851e7c07090feed29c8fe07b8c67a8bdd) | 19.94 | 24.17 | 21.05 |
| feat: 3626 add option enable license content; disable by default (#3631) | [e584c9f](https://github.com/anchore/syft/commit/e584c9f416028051fbdc80fffda4e624aaed528d) | 20.34 | 21.39 | 20.83 |

* * *

I’ll run it again with a larger, more complex container. But it’s pretty time consuming, so you’ll have to wait a while for the result.
