wade wrote: > These charts are really interesting (and nice looking!). The whole thing > probably requires a lot of analysis to make real gains though. I wonder > what all those calls to 'cat' are in the first chart. I also wonder if it
i did some looking, and while i don't think i've found the real culprit, i have found a _lot_ of usage of this idiom in the scripts: [A] cmdline=$(cat /proc/cmdline) or [B] if [ `cat /proc/sys/net/ipv4/ip_forward` != 0 ]; then action $"Disabling IPv4 packet forwarding: " sysctl -w > fi or [C] mfgtag () { cat $MFG_DATA/$1 | tr -d '\000' 2>/dev/null } in every case, the "cat" process is completely unnecessary. if i thought bash was a good idea, i'd point out: $(< file) which returns the contents of "file". but even without bash (which is probably appropriate if you're looking for efficiency), you can do: [A] read cmdline < /proc/cmdline and this, which preserves the look of the code a bit more: [B] firstline() { read __line < $1; echo "$__line" } if [ `firstline /proc/sys/net/ipv4/ip_forward` != 0 ]; then action $"Disabling IPv4 packet forwarding: " sysctl -w > fi and finally this: [C] mfgtag () { tr -d '\000' < $MFG_DATA/$1 2>/dev/null } or even: [C] mfgtag () { tr -d '\000' $MFG_DATA/$1 2>/dev/null } the shell is really pretty fast, if you can keep the number for spawned processes to a minimum. paul =--------------------- paul fox, p...@laptop.org _______________________________________________ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel