Up to [cvs.NetBSD.org] / pkgsrc / pkgtools / pkg_install / files / create
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: pkgsrc-2021Q4
Revision 1.28 / (download) - annotate - [select for diffs], Wed Jul 1 10:03:20 2020 UTC (3 years, 9 months ago) by jperkin
Branch: MAIN
CVS Tags: pkgsrc-2024Q1-base,
pkgsrc-2024Q1,
pkgsrc-2023Q4-base,
pkgsrc-2023Q4,
pkgsrc-2023Q3-base,
pkgsrc-2023Q3,
pkgsrc-2023Q2-base,
pkgsrc-2023Q2,
pkgsrc-2023Q1-base,
pkgsrc-2023Q1,
pkgsrc-2022Q4-base,
pkgsrc-2022Q4,
pkgsrc-2022Q3-base,
pkgsrc-2022Q3,
pkgsrc-2022Q2-base,
pkgsrc-2022Q2,
pkgsrc-2022Q1-base,
pkgsrc-2022Q1,
pkgsrc-2021Q4-base,
pkgsrc-2021Q4,
pkgsrc-2021Q3-base,
pkgsrc-2021Q3,
pkgsrc-2021Q2-base,
pkgsrc-2021Q2,
pkgsrc-2021Q1-base,
pkgsrc-2021Q1,
pkgsrc-2020Q4-base,
pkgsrc-2020Q4,
pkgsrc-2020Q3-base,
pkgsrc-2020Q3,
HEAD
Changes since 1.27: +3 -3
lines
Diff to previous 1.27 (colored)
pkg_install: Fix and speed up "pkg_admin rebuild-tree". In the pkg_admin front end, instead of adding +REQUIRED_BY entries as they are found, which previously led to duplicate entries, cache the results and write out the files at the end. Underneath, add a caching version of iterate_pkg_db() that avoids the same pkgdb directory lookup for every installed package, but is only suitable for reads. Also add a cache for best_match lookups to avoid expensive matches each time. For all caches, use a simple hashing function to improve lookup performance. In summary, as well as fixing +REQUIRED_BY files, these patches reduce the wall/user/system time of "pkg_admin rebuild-tree" on a system with 12,762 packages installed down from 13m52s/11m20s/2m32s to just 1m4s/1m3s/0m1s.