У меня есть сценарий оболочки, который я запускаю как на Linux, так и на Sun Solaris, однако есть существенная разница во времени, которое требуется сценарию для выполнения.
Когда я отладил скрипт на обоих серверах с помощью 'set -x', я обнаружил, что цикл for, получающий вывод из оператора 'awk', занимает в Linux гораздо больше времени, чем в Solaris. после установки опции отладки я могу наблюдать построчное выполнение скриптов и наблюдать, что производительность в linux намного ниже, даже если на обоих серверах выполняется один и тот же набор строк.
Следующее является частью сценария, занимающего время:
for k in `awk ' {print $1 }' StartAppTemp`
Также я рассчитал время, затраченное на цикл for, используя следующую команду:
time `for k in `awk ' {print $1 }' StartAppTemp``
O/P на Linux:
real 0m0.002s
user 0m0.000s
sys 0m0.003s
О / п на Солярисе
real 0m0.00s
user 0m0.00s
sys 0m0.00s
Здесь точность составляет всего 2 цифры после десятичной.
Полный сценарий:
for k in `awk ' {print $1 }' StartAppTemp`;do
ps -p $k >/dev/null;
if test $? -eq 0 ; then
echo "running";
else
echo "Stopped";
fi;
done;
Есть ли способ повысить производительность в Linux?