shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Array mais lento do que "-f $aquivo"


From: Eri Ramos Bastos
Subject: Array mais lento do que "-f $aquivo"
Date: Wed, 24 Oct 2018 11:26:44 -0300

Olá, lista!

Tenho um script que roda a seguinte função ~300 vezes (sourced de outro arquivo):

check_role() {
if [ -d /etc/roles/ ]; then
if [ -f /etc/roles/$1 ]; then
return 0
fi
fi
return 1
}

Pensei que iria ganhar performance fazendo isso:

list_roles() {
if [ -d /etc/roles/ ]; then
cd /etc/roles
ls
else
echo ""
fi

}

export ROLES=($(list_roles))
check_role() {
local role=$1
for r in "${ROLES[@]}"; do
[[ "$r" == "$role" ]] && return 0
done
return 1

}

Mas na verdade o tempo de execução piorou:

Original:
real    0m2.069s 
user    0m0.300s 
sys     0m1.644s

Novo:
real    0m2.857s
user    0m0.348s
sys     0m2.296s


Me parece contra-intuitivo, já que o original precisa checar em disco todas as vezes. Onde estou errado?

Obrigado!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]