From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mod.civil.su.OZ.AU ([129.78.142.6]) by hawkwind.utcs.toronto.edu with SMTP id <2748>; Fri, 9 Apr 1993 12:48:05 -0400 Received: by mod.civil.su.oz.au id <28689>; Sat, 10 Apr 1993 02:47:41 +1000 From: John (Most modern computers would break if you stood on them) Mackin Date: Fri, 9 Apr 1993 12:39:38 -0400 To: The rc Mailing List Subject: Re: Speed of rc In-Reply-To: <93Apr9.123225edt.28706@plg.uwaterloo.ca> Message-ID: <199304100239.22248.rc.bagiy@civil.su.oz.au> X-Face: 39seV7n\`#asqOFdx#oj/Uz*lseO_1n9n7rQS;~ve\e`&Z},nU1+>0X^>mg&M.^X$[ez>{F k5[Ah<7xBWF-@-ru?& @4K4-b`ydd^`(n%Z{ Summary: Dave Mason shows us, once again, that shots from the hip usually miss. rc will have a significantly larger environment (rc functions) than sh, and many systems have *abysmal* exec performance because of the time spent copying the environment. I don't know if you just didn't bother to read my mail, Dave, or what. rc and sh were both being executed with precisely the same environment. So whatever contribution exec makes in copying the environment will have been the same for both. For the record, I just did a wc of my environment and it is around 2100 characters. As to `rc functions,' never forget than an important factor in the _startup_ time of Byron's rc is that it imports functions lazily. Of course, startup time is specifically not at issue here. So, John: try a version of rc with an empty environment. I suspect the system times will be as fast as those for sh. BZZZZZT! Sorry, Player One, you lose this time, but thanks for trying... : mod;; env - sh $ /bin/time /bin/sh -c '/bin/cat pus2 | /usr/local/bin/rc' 27.5 real 1.3 user 24.7 sys $ /bin/time /bin/sh -c '/bin/cat pus2 | /usr/local/bin/rc' 27.7 real 1.2 user 25.1 sys $ /bin/time /bin/sh -c '/bin/cat pus2 | /usr/local/bin/rc' 27.5 real 1.1 user 25.0 sys $ /bin/time /bin/sh -c '/bin/cat pus2 | /usr/local/bin/rc' 27.4 real 1.1 user 24.7 sys $ /bin/time /bin/sh -c '/bin/cat pus2 | /bin/sh' 17.2 real 1.3 user 14.9 sys $ /bin/time /bin/sh -c '/bin/cat pus2 | /bin/sh' 16.8 real 1.4 user 14.4 sys $ /bin/time /bin/sh -c '/bin/cat pus2 | /bin/sh' 16.8 real 1.5 user 14.2 sys $ /bin/time /bin/sh -c '/bin/cat pus2 | /bin/sh' 16.9 real 1.4 user 14.8 sys Clearly, with an empty environment, we can't do any path searching, so I tried only pus2 this time, with the "./xx"s in it. We still see rc using a much higher system time than sh. Interestingly, sh's user-time has come down to on a par with rc's. I won't offer any speculation on that one. OK, John.