No.js Spawn vs. Execute
2 answers
A principal diferença é que spawn
é mais adequado para um processo de longa duração com uma saÃda enorme. spawn
passa a entrada / saÃda com o processo-filho. exec
saÃda tamponada num pequeno buffer (por omissão de 200K). Também como eu sei {[[2] } primeiro desova, em seguida, tentar executar o seu processo. Para encurtar o uso {[[0]} no caso de precisar de muitos dados transmitidos a partir do processo infantil e {[[2]} Se precisar de recursos como tubos de concha, redirecções ou mesmo precisa executar mais de um programa em um tempo.
Um bom ponto de partida é a documentação do NodeJS .
Para 'spawn', a documentação indica:
O processo infantil.o método spawn () gera um novo processo usando o comando indicado, com argumentos da linha de comandos em args. Se omitido, o args é por omissão um array vazio.
Enquanto para 'exec':
Cria uma shell e executa o comando dentro dessa shell, bloqueando qualquer saÃda gerada. O texto do comando passado para a função exec é processado diretamente pela shell e caracteres especiais (variar com base na shell) precisam ser tratados em conformidade.
A coisa principal parece ser se você precisa lidar com a saÃda do comando ou não, o que eu imagino que pode ser o fator impactando desempenho (Eu não comparei). Se você só se importa com a conclusão do processo, e não com a sua saÃda, então 'spawn' pareceria ser suficiente.