Hi Jason, Sorry - I was on vacation for the past month; I think I understand what you mean now... you want to cache the output of 'hg manifest' and just parse it later repeatedly. That seems fine to me.
cheers, steve Jason Zhao wrote: > Hi,Steve and Dan: > > Stephen Lau wrote: >> Hi Jason, >> >>>> Hm. The command is run multiple times. I'd probably just find a >>>> way to >>>> not have to do that. Something like >>>> >>>> for dir; do >>>> dirs="$dirs|$dir" >>>> done >>>> dirs=${dirs#|} >>>> hg manifest | egrep "^($dirs)/.*/${pat#s.}\$" >>>> >>>> or something like that. I dunno if that'd actually do what needs to >>>> happen >>>> there. >>> Yes, it is faster. >>> Here is a time running: >>> # pwd >>> $SRC/uts >>> >>> # time flg.flp -r >>> real 1m43.533s >>> user 1m37.697s >>> sys 0m8.441s >>> >>> It is running in my x4200, 2 times faster than before. >>> >>> And takes about 3 minutes in my DELL GX270. >>> real 2m57.556s >>> user 2m33.094s >>> sys 0m12.130s >>> >>> Could we use "echo" to take the place "hg manifest".In my test,"echo" >>> often faster than "hg manifest" a little bit. >> >> I'm not sure I understand what you mean here by replace "hg manifest" >> with "echo"? > It just replaced "hg manifest" with "echo", > 1.put "FILELIST=`hg manifest`" once to setup a snapshot when it is > "mercurial",E.g > > SCM_MODE=`detect_scm` > ...... > if [[ $SCM_MODE == "unknown" ]];then > ...... > elif [ "$SCM_MODE" = "mercurial" ]; then > codemgr_ws=`hg root 2>/dev/null` > FILELIST=`hg manifest` <--------------- put all "hg > manifest" result to FILELIST variable at the beginning of "mercurial > judgement" > else > fail "No available SCM found" > fi > > > 2.then when try to "egrep " from the $FILELIST.E.g: > for dir; do > dirs="$dirs|$dir" > done > dirs=${dirs#|} > echo "$FILELIST" | egrep "^($dirs)/.*/${pat#s.}\$" > <------------------- Here,original one is 'hg manifest | egrep > "^($dirs)/.*/${pat#s.}\$" ' > > In my test,"echo $FILELIST" is a little bit faster than "hg manifest" in > my x4200 with the same "flg.flp -r" report. > ############ with echo "$FILELIST" | egrep "^($dirs)/.*/${pat#s.}\$" > ############## > [root at sol-x4200-3]#time flg.flp -r > > real 0m55.189s > user 0m46.166s > sys 0m11.712s > ########################################################################## > > > ############ with "hg manifest | | egrep "^($dirs)/.*/${pat#s.}\$" > ################## > [root at sol-x4200-3]#time flg.flp -r > > real 1m43.686s > user 1m37.640s > sys 0m8.640s > ########################################################################## > > > Please correct me if something misunderstand. > > Thanks > Jason -- stephen lau // stevel at sun.com | 650.786.0845 | http://whacked.net opensolaris // solaris kernel development