Я не понимаю результатов простого теста производительности, который я запустил с использованием двух основных сценариев (работающих на высокопроизводительном сервере):
perfVar.zsh :
#!/bin/zsh -f
MYVAR=`cat $1`
for i in {1..10}
do
echo $MYVAR
done
perfCat.zsh
#!/bin/zsh -f
for i in {1..10}
do
cat $1
done
Результат теста производительности:
> time ./perfVar.zsh BigTextFile > /dev/null
./perfVar.zsh FE > /dev/null 6.86s user 0.32s system 100% cpu 7.177 total
> time ./perfCat.zsh BigTextFile > /dev/null
./perfCat.zsh FE > /dev/null 0.01s user 0.10s system 91% cpu 0.118 total
Я бы подумал, что доступ к VARIABLE был намного быстрее, чем чтение ФАЙЛА в файловой системе ... Почему этот результат? Есть ли способ оптимизировать сценарий perfCat.zsh, уменьшив количество обращений к файловой системе?