Nicolas Bonifas wrote:
>>  > I don't know much about bash internals, but there is probably room for
>>  > a huge performance improvement in speeding up the eval builtin.
>>  > What do you think about it? Would it be a difficult task?
>>
>>     It is more likely to be the command substitution that is slow.
> 
> You're right:
> $ time (echo `dircolors` > /dev/null)
> 
> real    0m0.318s
> user    0m0.312s
> sys     0m0.008s
> 
> I ran the previous tests with bash-3.1. With bash-3.2, echo
> `dircolors` take 0.088s of user time (1/4th of the time needed by
> bash-3.1), and dircolors > dircolors_output && sh ./dircolors_output
> still takes 0.004s, so it is more than 20 times faster than using
> command substitution.
> 
> So, do you think that speeding up command substitution would be a
> difficult task?

I assume you know that the speed issues most likely come from the
operating system's supporting functions like the fork() and exec*()
family members? Executing another process takes time and there is not
much you can do about it.

If you have speed problems while using a huge amount of command
substitutions you either have a bad script design or use the wrong
language for your specific task IMHO.

J.




Reply via email to