Date: Thu, 17 May 2007 08:06:00 -0500 From: Stephen Montgomery-Smith <stephen@math.missouri.edu> To: Alexander Leidinger <Alexander@leidinger.net> Cc: "\[LoN\]Kamikaze" <LoN_Kamikaze@gmx.de>, Robert Noland <rnoland@2hip.net>, Pav Lucistnik <pav@freebsd.org>, freebsd-ports@freebsd.org, Kris Kennaway <kris@obsecurity.org> Subject: Re: Time to abandon recursive pulling of dependencies? Message-ID: <464C5338.2090300@math.missouri.edu> In-Reply-To: <20070517114436.3fdd55b1@deskjail> References: <464597C6.3030406@gmx.de> <20070512174011.GA22526@xor.obsecurity.org> <4645FF71.60100@gmx.de> <20070512175824.GA23103@xor.obsecurity.org> <20070512133054.B5588@math.missouri.edu> <4646193E.5040503@gmx.de> <464665D5.1090509@math.missouri.edu> <464676CC.2000203@math.missouri.edu> <46469BF5.9030603@math.missouri.edu> <1179058696.13237.3.camel@ikaros.oook.cz> <20070513101332.L82202@math.missouri.edu> <46479215.1080401@math.missouri.edu> <4647C4FB.9050607@math.missouri.edu> <4647F182.6000402@gmx.de> <46487491.6020806@math.missouri.edu> <46488168.3030300@math.missouri.edu> <464B155A.1080105@math.missouri.edu> <464B7144.2000600@math.missouri.edu> <1179353641.79329.11.camel@rnoland-ibm.acs.internap.com> <20070517114436.3fdd55b1@deskjail>
next in thread | previous in thread | raw e-mail | index | archive | help
Alexander Leidinger wrote: > Quoting Robert Noland <rnoland@2hip.net> (Wed, 16 May 2007 18:14:01 -0400): > >> On Wed, 2007-05-16 at 16:01 -0500, Stephen Montgomery-Smith wrote: >>> Ok chaps, I think I have it. >>> >>> This involves no recursive calls of make. Furthermore the >>> dependencies >>> it creates are the real dependencies on your system, not what ports >>> thinks it should be, because it gets all the information from >>> /var/db/pkg. On my system it takes a second or two to register a port >>> - >>> it takes about the same amount of time whether it has few >>> dependencies >>> or many, except when there are zero dependencies, when it takes no >>> time >>> at all. >>> >>> If I get some positive feedback on this one, I'll submit a PR. You >>> can >>> try it out by typing "make actual-package-depends" as opposed to >>> "make >>> package-depends." >> Ok, I'm really trying to make sense of these numbers... >> >> For gnome2-2.18.1_1 on my -current system... >> >> rnoland-ibm% make package-depends|wc -l >> 362 >> rnoland-ibm% make actual-package-depends|wc -l >> 294 >> >> Registered the old way: >> rnoland-ibm% grep @pkgdep /var/db/pkg/gnome2-2.18.1_1/+CONTENTS|wc -l >> 176 >> >> and the new way: >> rnoland-ibm% grep @pkgdep /var/db/pkg/gnome2-2.18.1_1/+CONTENTS|wc -l >> 294 >> >> I put together an awk script yesterday which was very close to the one >> Alexander posted and got 295... and the diff of the output of my awk and >> actual-package-depends is much more than a single line, which I also >> can't yet explain. > > I had a look at it. It is missing those dependencies which are not > installed. Depending on when this target is used, this is ok or not. > > Some benchmark: > ---snip--- > [original] > make package-depends 80.18s user 53.92s system 73% cpu 3:01.53 total > make package-depends 80.70s user 52.94s system 87% cpu 2:32.25 total > make package-depends > /tmp/list1 79.58s user 54.28s system 87% cpu 2:32.59 total > > [no AWK] > make actual-package-depends 4.76s user 7.46s system 57% cpu 21.082 total > make actual-package-depends 4.87s user 7.34s system 67% cpu 18.019 total > make actual-package-depends > /tmp/list2 4.58s user 7.60s system 87% cpu 13.942 total > > [AWK] > make actual-package-depends 3.15s user 7.45s system 85% cpu 12.420 total > make actual-package-depends 3.13s user 7.49s system 84% cpu 12.524 total > make actual-package-depends 3.11s user 7.49s system 88% cpu 11.995 total > make actual-package-depends >| /tmp/list3 3.16s user 7.42s system 89% cpu 11.83 0 total > > [AWK + partly missing (only direct dependencies)] > make actual-package-depends > /tmp/list4 4.60s user 7.63s system 90% cpu 13.479 total > make actual-package-depends 4.68s user 7.56s system 87% cpu 13.985 total > make actual-package-depends 4.58s user 7.64s system 89% cpu 13.594 total > > ...sorting list1 & list2 & list3 & list4... > > % wc -l /tmp/list*s > 320 /tmp/list1s > 308 /tmp/list2s > 308 /tmp/list3s > 310 /tmp/list4s > 1246 total > ---snip--- > > Note, there was trackerd running in the background while testing... > > For the difference between the redirected output case: I think the > gnome terminal needs a lot of time to print all the lines. But still, > the awk version takes around 3/4 of the time (interesting is the user > time, not the total time). Stephen's version can be speed up some > fractions by inserting a break into the first while-loop. > > Attached is my awk-version and the awk version which also includes the > direct dependencies. > > Bye, > Alexander. > > I think I like Alexander's awk version better than mine. Alexander - can I ask you to submit the PR using send-pr? Stephen
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?464C5338.2090300>