Performance awk x grep
Dica publicada em Shell Script / Introdução
Performance awk x grep
Utilizava o comando grep em alguns scripts para selecionar algumas linhas dentro de um arquivo e depois o awk para formatar a apresentação.
Em discussão com um colega mais experiente, este me orientou a utilizar diretamente o awk para selecionar e formatar, pois o | (pipe) força a execução de dois comandos, o que torna o script menos performático.
Me pareceu bem lógico, mas fui testar... e quem diria, o teste indicou que é melhor utilizar os dois comandos, pois aparentemente o grep é mais "leve" que o awk, com isso ao fazer um filtro prévio com o grep o awk trata bem menos informação, o que dá vantagem para esta combinação.
O teste foi realizado utilizando a busca em um arquivo de 9,6G e os resultados foram que o combinado grep | awk consumiu 60% menos CPU e foi 20% mais rápido.
Claro que isso vai depender de quanto o grep vai filtrar, quanto mais melhor.
Vivendo e aprendendo...
Em discussão com um colega mais experiente, este me orientou a utilizar diretamente o awk para selecionar e formatar, pois o | (pipe) força a execução de dois comandos, o que torna o script menos performático.
Me pareceu bem lógico, mas fui testar... e quem diria, o teste indicou que é melhor utilizar os dois comandos, pois aparentemente o grep é mais "leve" que o awk, com isso ao fazer um filtro prévio com o grep o awk trata bem menos informação, o que dá vantagem para esta combinação.
O teste foi realizado utilizando a busca em um arquivo de 9,6G e os resultados foram que o combinado grep | awk consumiu 60% menos CPU e foi 20% mais rápido.
Claro que isso vai depender de quanto o grep vai filtrar, quanto mais melhor.
Vivendo e aprendendo...
Att