Como posso enfatizar o teste de uma ferramenta de linha de comando?

3

Eu gostaria de tentar testar um script PHP que escrevi, que acessa o sistema de arquivos, para ver como ele lida com o carregamento e o acesso paralelo.

Gostaria de executar este script x times em y processos diferentes parallelly.

Existe uma ferramenta para isso?

    
por Benjamin 16.07.2013 / 15:01

1 resposta

1

xargs permite processamento paralelo fácil. Aqui está um exemplo (que assume que sua versão do xargs suporta a opção -0 , que não é um requisito do POXIX. Se a portabilidade é um problema, simplesmente use echo e elimine o -0 ).

maxruns=2000
instances=50
printf '%s
maxruns=2000
instances=50
printf '%s%pre%' {1..$maxruns} | xargs -0 -I, -n 1 -P $instances <program>
' {1..$maxruns} | xargs -0 -I, -n 1 -P $instances <program>

printf gera os números de 1 a 2000 delimitados por caracteres NULL. Isso é canalizado para xargs . A opção -0 notifica xargs que os valores são delimitados por um caractere NULL em vez de espaço em branco. A chave -I substitui o caractere seguinte (uma vírgula, pode ser qualquer sequência de caracteres) pelo valor de entrada. Como os valores de entrada são os números, que não precisamos, e não há outra vírgula na linha de comando, a entrada é simplesmente descartada. -n 1 fornece no máximo um argumento para <program> . -P 50 não executa mais de 50 instâncias de <program> de cada vez.

    
por 17.07.2013 / 19:58