|
From: | Eri Ramos Bastos |
Subject: | Re: [shell-script] Array mais lento do que "-f $aquivo" |
Date: | Wed, 24 Oct 2018 12:53:33 -0300 |
Fala EriAcho vc ganharia performance se fizesse:check_role() {local ROLES=($(ls /etc/roles)) || return 1for r in "${ROLES[@]}"; do[[ "$r" == "$1" ]] && return 0done}Abraços,Julio» Não tem tempo para fazer um curso presencial?» Na sua cidade não tem nenhum bom curso de Linux?» Conheça nosso portal educacional e estude conosco:http://www.dicas-l.com.br/educacao» Treinamento presencial (em 4 sábados) no RJ e BSBTambém damos treinamento em sua empresaem qualquer cidade, com certificado e nota fiscal.Em qua, 24 de out de 2018 às 11:41, Eri Ramos Bastos address@hidden [shell-script] <address@hidden> escreveu:Olá, lista!Tenho um script que roda a seguinte função ~300 vezes (sourced de outro arquivo):check_role() {if [ -d /etc/roles/ ]; thenif [ -f /etc/roles/$1 ]; thenreturn 0fifireturn 1}Pensei que iria ganhar performance fazendo isso:list_roles() {if [ -d /etc/roles/ ]; thencd /etc/roleslselseecho ""fi}export ROLES=($(list_roles))check_role() {local role=$1for r in "${ROLES[@]}"; do[[ "$r" == "$role" ]] && return 0donereturn 1}Mas na verdade o tempo de execução piorou:Original:real 0m2.069s
user 0m0.300s
sys 0m1.644sNovo:
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!
[Prev in Thread] | Current Thread | [Next in Thread] |