Teve uma conversa com alguém sobre como adicionar algum código de inicialização na inicialização do aplicativo e ele reclamou disso, causando um aumento no tempo de inicialização. Ele não podia realmente indicar uma razão (pressentimento ou algo assim, não sei). Este não é um aplicativo de uso pesado e começa em cerca de um minuto, implementamos algumas vezes por ano.
Lembro-me de ler esses conselhos sobre questões sobre SO há algum tempo, pessoas aconselhando a inicialização na inicialização, em vez de acessar a página com o selo "se você puder pagar a penalidade".
Trabalhei com aplicativos da Web que começaram de 30 segundos a 4-5 minutos, mas uma vez on-line, eles foram incríveis.
Então o que estou perdendo? A menos que seja uma aplicação vital como ... não sei ... para o mercado financeiro, aplicações médicas, exploração espacial etc., é realmente importante o tempo de inicialização?
PS: Estou me referindo estritamente a aplicativos da Web, aplicativos de desktop provavelmente começarão muito rápido.
fonte
Respostas:
Pode ser um grande fator durante o desenvolvimento: se sua plataforma não suportar a alteração de código em um aplicativo em execução, o tempo de inicialização se tornará parte do seu ciclo de feedback e, aí, até 30 segundos são dolorosos e uma ameaça à produtividade.
Para o ambiente de produção, isso realmente não importa; um pouco de tempo de inatividade é aceitável e 5 minutos ainda não são muito, ou não é, e você precisa implementar algum tipo de alternância ao vivo.
fonte
Acredito que esse seja o caso quando o famoso princípio dialético de Hegel de transição da quantidade para a qualidade realmente funciona.
Veja bem, o tempo sempre é importante. Concordo com as palavras de Michael Borgwardt sobre a importância da construção rápida durante o desenvolvimento / teste, mas insisto que (pode ser de alguma outra maneira) também é muito importante para a produção.
Cada desenvolvedor que implantou algum código incorreto na produção sabe que o hotfix fornecido em 5 minutos e em 1 minuto é muito, muito diferente.
fonte
A verdadeira questão é se o aplicativo funcionará sem a inicialização. Temos novos contratados que ficam obcecados com "desempenho", minha resposta é que não me importo com a rapidez com que você produz resultados errados. IMHO cortando cantos, alterando algoritmos porque "será mais rápido dessa maneira", e outras grandes idéias apenas introduzem bugs.
Se a inicialização for necessária, faça-o. Quanto tempo será desperdiçado quando os usuários finais obtiverem resultados errados, eventualmente descobrir que o aplicativo Web está errado, ligar e reclamar e você precisará voltar e depurar / corrigir / testar / reimplementar? Agora pergunte ao seu colega como foi economizado tempo. (e aposto que os núcleos dos servidores estão 99% ociosos)
fonte
Esta pergunta não pergunta sobre nenhuma plataforma em particular. Existem plataformas nas quais o tempo de inicialização é realmente muito importante.
Por exemplo, no Google App Engine; se sua página não estiver sendo acessada (ou melhor, estiver sendo acessada com menos frequência do que outro aplicativo no mesmo nó), ela será descarregada ocasionalmente.
Portanto, se você está nos 99% inferiores da frequência de acesso ao site, o tempo de inicialização é o tempo de acesso; seu aplicativo está sendo reiniciado em quase todos os acessos. se você estiver no top 1%, seu aplicativo está iniciando em muitos nós e, embora muitos acessos à página retornem de uma instância já iniciada, alguns ainda não o serão e, portanto, você terá tempos de acesso longos e intermitentes .
O mesmo ocorre em muitos outros ambientes de hospedagem. Vazamentos em bibliotecas de terceiros, ou mesmo em seu próprio código que simplesmente escaparam à descoberta, podem significar que a única maneira confiável de executar seu serviço da Web é fazê-lo recarregar a cada tantas solicitações (geralmente entre 100 e 10.000), e assim o tempo de inicialização é pago com frequência. O uso desse padrão é aceitável quando um aplicativo está com vazamento, mas é iniciado rapidamente; não é viável quando o aplicativo leva mais do que alguns segundos para iniciar.
fonte
Você está correndo o risco de seu aplicativo ser considerado abaixo do padrão ou, pior ainda, sua capacidade de desenvolvimento. Agora, esse aplicativo pode estar economizando tanto tempo para alguém e / ou fazer uma tarefa tão necessária que os usuários agradecidos podem olhar além da longa inicialização.
Pode levar mais tempo para programar de maneira a carregar o aplicativo com preguiça, mas apenas as partes interessadas podem determinar se vale a pena. Eu tive um relatório que foi executado em 55 segundos. e chegamos a 35. Ninguém percebeu. Embora eu tenha passado o dobro do tempo entre 35 e 18, todos perceberam e ficaram agradecidos e impressionados. Passar de 5 a 3 minutos para um aplicativo usado algumas vezes por ano não é grande coisa. Os usuários terão menos tempo para gastar no Facebook ou tomar café.
Percepção é a chave. Se a composição não estiver satisfeita com as equipes de desenvolvimento em geral e com este aplicativo especificamente, convém criar uma boa vontade e acelerar o processo.
fonte