Re: git: a8267ecc3df0 - main - Speed up *-old-* make targets by using sed instead of xargs
- In reply to: Ed Maste : "git: a8267ecc3df0 - main - Speed up *-old-* make targets by using sed instead of xargs"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 09 Apr 2022 11:08:33 UTC
On 4/9/22 02:41, Ed Maste wrote: > The branch main has been updated by emaste: > > URL: https://cgit.FreeBSD.org/src/commit/?id=a8267ecc3df0aa633daa56360d67a24f9b1d3961 > > commit a8267ecc3df0aa633daa56360d67a24f9b1d3961 > Author: Ed Maste <emaste@FreeBSD.org> > AuthorDate: 2022-04-01 22:58:00 +0000 > Commit: Ed Maste <emaste@FreeBSD.org> > CommitDate: 2022-04-09 00:41:10 +0000 > > Speed up *-old-* make targets by using sed instead of xargs > thanks! > Targets like 'list-old-files' used "xargs -n1" to produce a list with > one file per line. Using xargs resulted in one fork+exec for each > Argument, resulting in rather long runtime. Instead, use sed to split > the list. On one machine `make list-old-files` took 30s wall clock time > with xargs and less than 1s with sed. > > Reviewed by: jhb > MFC after: 2 weeks > Sponsored by: The FreeBSD Foundation > Differential Revision: https://reviews.freebsd.org/D34741 > --- > Makefile.inc1 | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/Makefile.inc1 b/Makefile.inc1 > index f4d5b4cc8050..1f29e89881c0 100644 > --- a/Makefile.inc1 > +++ b/Makefile.inc1 > @@ -3208,7 +3208,8 @@ list-old-files: .PHONY > ${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \ > -V OLD_FILES -V "OLD_FILES:Musr/share/*.gz:R" \ > -V "OLD_FILES:Mlib/*.so.*:S,^lib,usr/lib32," \ > - -V "OLD_FILES:Musr/lib/*:S,^usr/lib,usr/lib32," | xargs -n1 | sort > + -V "OLD_FILES:Musr/lib/*:S,^usr/lib,usr/lib32," | \ > + sed -E 's/[[:space:]]+/\n/g' | sort > > delete-old-files: .PHONY > @echo ">>> Removing old files (only deletes safe to delete libs)" > @@ -3275,7 +3276,7 @@ list-old-libs: .PHONY > -V OLD_LIBS -V MOVED_LIBS -V "OLD_LIBS:Mlib/*:S,^lib,usr/lib32," \ > -V "OLD_LIBS:Musr/lib/*:S,^usr/lib,usr/lib32," \ > -V "OLD_LIBS:Mlib/casper/*:S,^lib/casper,usr/lib32," | \ > - xargs -n1 | sort > + sed -E 's/[[:space:]]+/\n/g' | sort > > delete-old-libs: .PHONY > @echo ">>> Removing old libraries" > @@ -3316,7 +3317,7 @@ check-old-libs: .PHONY > list-old-dirs: .PHONY > @cd ${.CURDIR}; \ > ${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \ > - -V OLD_DIRS | xargs -n1 | sort -r > + -V OLD_DIRS | sed -E 's/[[:space:]]+/\n/g' | sort -r > > delete-old-dirs: .PHONY > @echo ">>> Removing old directories" >