Está usando o sono php function () uma boa idéia para manter a carga da CPU para baixo com roteiro pesado?
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?
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:
-
Alugue um servidor PHP baixo custo - ou obter uma configuração de servidor Dev adequada que replica a produção
-
Todos os arquivos dinâmicos são copiados para DEV - não há até mesmo necessidade de estar na produção
-
Execute o script HTMLizer - nenhum sono simplesmente queimá-lo
-
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.