1
resposta

Otimização

Ao invés de usar o bc para calcular o valor da memória consumida dividido pelo total com scale=2, multiplicado por 100 para obter a porcentagem e em seguida usar o awk para remover o .00 do final, é mais otimizado multiplicar primeiro a memória consumida por 100, dividir pela memória total e assim já obter o valor em porcentagem arredondado inteiro.

bc <<< memoria_consumida*100/memoria_total

no exemplo do vídeo, seria

bc <<< 1260952*100/2047912

O resultado é o mesmo que bc <<< "scale=2;1260952/2047912 *100" | awk -F. '{ print $1 }'

Obs: é necessário primeiro multiplicar primeiro por 100 para depois dividir pela memória total pois o bc atua como uma calculadora em pilha, pegando o resultado da saída da primeira operação para depois utilizar na segunda, arredondado para baixo, caso não se utilize o scale para informar que são números de ponto flutuante. No caso, a divisão da memória consumida pela memória total retorna 0, pois a memória total é maior do que a consumida e, com isso, a parte inteira da divisão da consumida pela total retorna zero, e este zero depois seria multiplicado pelo 100 para obter a porcentagem se for feita nessa ordem, resultando em 0 no total.

1 resposta

Oi Guilherme, tudo bem?

Muito obrigada por compartilhar com a gente essa sugestão! É muito bom ver a visão de outra pessoa.

Parabéns por contribuir com a comunidade.

Um abraço e bons estudos.