Está usando o sono php function () uma boa idéia para manter a carga da CPU para baixo com roteiro pesado?

StackOverflow https://stackoverflow.com/questions/659229

  •  20-08-2019
  •  | 
  •  

Pergunta

Eu tenho um comando "gerar website", que analisa através de todas as tabelas para republicar um site inteiro em páginas HTML fixos. Isso é um processo pesado, pelo menos na minha máquina local (o CPU sobe). No servidor de produção não parece ser um problema até agora, mas eu gostaria de mantê-lo à prova de futuro. Portanto, eu estou pensando em usar o sono php function () entre cada passo do script pesado para que o servidor tenha tempo para "recuperar o fôlego" entre os passos pesados.

É uma boa idéia ou será inútil?

Foi útil?

Solução

Se você estiver executando o PHP5, e está sendo usado em CGI (em vez de mod_php) mode, então você poderia considerar o uso proc_nice vez.

Isso pode permitir que o comando "gerar website" para uso tanto CPU como ele quer, enquanto ninguém mais está tentando usar o site.

Outras dicas

Eu simplesmente não fazer isso no servidor de produção, os passos que seguiu antes:

  1. Alugue um servidor PHP baixo custo - ou obter uma configuração de servidor Dev adequada que replica a produção

  2. Todos os arquivos dinâmicos são copiados para DEV - não há até mesmo necessidade de estar na produção

  3. Execute o script HTMLizer - nenhum sono simplesmente queimá-lo

  4. Validar o ouput e depois RSYNC isso para o servidor ao vivo - o backup do diretório ao vivo como você fazê-lo de modo que você pode cair de volta com segurança

De qualquer forma, desde Caching / Memcaching veio até a velocidade Eu ainda não tinha que fazer isso em tudo -. Uso Zend Framework e Zend Cache e você tem basicamente uma dinâmica equivalente ao que você precisa fazer automaticamente

Eu acho que é uma boa idéia. Sono significa uma comparação repetitivo de carraças, até um período ocorre. A sobrecarga na CPU em uma operação de sono deve ser menor.

Depende de quantas vezes você estará chamando-o e por quanto tempo. Você precisa equilibrar sua necessidade de uma saída rápida vs. baixo uso da CPU.

Em resumo:. Sim, ele vai ajudar

Com base na tarefa, eu não acho que isso vai ajudá-lo.

Sleep só iria realmente ser útil se você foram continuamente looping e à espera de entrada do usuário ou sinal de disparo.

Neste caso, para fazer o trabalho o mais rápido possível assim como você pode omitir o comando sono, reduzindo assim o tempo de tarefas e liberando o tempo de CPU mais rápida para outros processos.

Alguns dos cartazes acima pode ser capaz de ajudá-lo melhor com a otimização de código.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top