INDEX build optimizations

Vladimir.Chukharev at gmail.com Vladimir.Chukharev at gmail.com
Sun Jun 22 09:21:21 UTC 2008


Since this subject has been discussed recently, I want to tell my
observations.

I played a bit with  INDEX_JOBS environment variable, and I found that
for my notebook
the best value is 8. The limiting factor seems to be grep'ing for
libssl through
packages. I believe this is easy to reproduce, probably with a higher
value for INDEX_JOBS.
Below is a part of ps axww output, and it shows more than 8 greps.

I hope if cashing the result of this command can be implemented, it
will increase speed
of make index quite considerably.

Best regard,
Vladimir

20384  p1  IN+    0:00,00 sh -ev
20385  p1  IN+    0:00,02 make -B _lang.describe
20391  p1  IN+    0:00,00 [sh]
20393  p1  IN+    0:00,09 make -B describe DIRPRFX=lang/
20405  p1  SN+    0:00,11 [sh]
25830  p1  IN+    0:00,00 sh -ev
25831  p1  IN+    0:00,02 make -B _mail.describe
25838  p1  IN+    0:00,00 [sh]
25839  p1  IN+    0:00,22 make -B describe DIRPRFX=mail/
25845  p1  SN+    0:00,01 [sh]
33352  p1  IWN+   0:00,00 sh /home/chu/chu/bin/cvsup-all.sh
34293  p1  IWN+   0:00,00 time nice make index
34294  p1  IWN+   0:00,00 make index
34311  p1  IWN+   0:00,00 /bin/sh -ec cd /usr/ports && make /usr/ports/
INDEX-7
34312  p1  IWN+   0:00,00 make /usr/ports/INDEX-7
34318  p1  IWN+   0:00,00 (sh)
34320  p1  SN+    0:00,08 make -j8 INDEX_TMPDIR=/tmp/index.1fgs6hrt
BUILDING_INDEX=1 ECHO_MSG=echo > /dev/null describe
35531  p1  IN+    0:00,00 sh -ev
35532  p1  IN+    0:00,02 make -B _misc.describe
35539  p1  IN+    0:00,00 [sh]
35540  p1  IN+    0:00,15 make -B describe DIRPRFX=misc/
35551  p1  IN+    0:00,12 [sh]
39146  p1  IN+    0:00,00 sh -ev
39149  p1  IN+    0:00,02 make -B _multimedia.describe
39213  p1  IN+    0:00,00 [sh]
39215  p1  IN+    0:00,07 make -B describe DIRPRFX=multimedia/
39232  p1  IN+    0:00,03 [sh]
40733  p1  IWN+   0:00,00 sh -ev
40734  p1  IWN+   0:00,00 make -B _databases.describe
40742  p1  IWN+   0:00,00 (sh)
40743  p1  IWN+   0:00,00 make -B describe DIRPRFX=databases/
40772  p1  SN+    0:00,16 [sh]
41039  p1  IN+    0:00,00 make -B describe
41042  p1  IN+    0:00,00 sh -c cd /usr/ports/devel/omniNotify/../
omniORB && make -V WRKSRC
41044  p1  IN+    0:00,01 make -V WRKSRC
41051  p1  IN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
41052  p1  DN+    0:00,43 grep -l -r ^lib/libssl.so. /var/db/pkg
41053  p1  IN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
41520  p1  IN+    0:00,01 make -B describe
41526  p1  IN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
41527  p1  DN+    0:00,38 grep -l -r ^lib/libssl.so. /var/db/pkg
41528  p1  IN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42412  p1  IN+    0:00,01 make -B describe
42414  p1  IN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42415  p1  DN+    0:00,38 grep -l -r ^lib/libssl.so. /var/db/pkg
42416  p1  IN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42548  p1  SN+    0:00,01 make -B describe
42555  p1  SN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42560  p1  DN+    0:00,05 grep -l -r ^lib/libssl.so. /var/db/pkg
42561  p1  SN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42589  p1  SN+    0:00,01 make -B describe
42599  p1  SN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42600  p1  DN+    0:00,05 grep -l -r ^lib/libssl.so. /var/db/pkg
42601  p1  SN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42606  p1  SN+    0:00,01 make -B describe
42611  p1  SN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42613  p1  DN+    0:00,05 grep -l -r ^lib/libssl.so. /var/db/pkg
42614  p1  SN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42623  p1  SN+    0:00,01 make -B describe
42626  p1  SN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42627  p1  DN+    0:00,05 grep -l -r ^lib/libssl.so. /var/db/pkg
42628  p1  SN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42673  p1  SN+    0:00,01 make -B describe
42675  p1  SN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
42676  p1  DN+    0:00,05 grep -l -r ^lib/libssl.so. /var/db/pkg
42677  p1  SN+    0:00,00 sh -c grep -l -r "^lib/libssl.so." "/var/db/
pkg" |  while read contents; do  sslprefix=`grep "^@cwd " "$
{contents}" | /usr/bin/head -n 1`;  if test "${sslprefix}" = "@cwd /
usr/local" ; then  echo "${contents}"; break; fi; done
54143  p1  IN+    0:00,00 sh -ev
54144  p1  IN+    0:00,02 make -B _devel.describe
54276  p1  IN+    0:00,00 [sh]
54277  p1  IN+    0:01,37 make -B describe DIRPRFX=devel/
54361  p1  IN+    0:00,35 [sh]
71092  p1  IN+    0:00,00 sh -ev
71094  p1  IN+    0:00,02 make -B _ftp.describe
71241  p1  IN+    0:00,00 [sh]
71242  p1  IN+    0:00,03 make -B describe DIRPRFX=ftp/
71261  p1  SN+    0:00,02 [sh]
76023  p1  IN+    0:00,00 sh -ev
76024  p1  IN+    0:00,02 make -B _irc.describe
76033  p1  IN+    0:00,00 [sh]
76035  p1  IN+    0:00,04 make -B describe DIRPRFX=irc/
76080  p1  SN+    0:00,02 [sh]


More information about the freebsd-ports mailing list