[Sugar-devel] SoaS on XO bootcharts
pgf at laptop.org
pgf at laptop.org
Wed Mar 4 11:04:52 EST 2009
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, pgf at laptop.org
More information about the Sugar-devel
mailing list