Tuve una conversación con alguien acerca de agregar un código de inicialización en el inicio de la aplicación y se quejó de que eso causó un aumento en el tiempo de inicio. Realmente no podía decir una razón (instinto o algo así, no lo sé). Esta no es una aplicación de uso intensivo y comienza en aproximadamente un minuto, implementamos algunas veces al año.
Recuerdo haber leído tales consejos sobre preguntas sobre SO hace algún tiempo, las personas que aconsejaban inicializar en el inicio en lugar de acceder a la página con el sello "si puede pagar la penalización".
He trabajado con aplicaciones web que comenzaron de 30 segundos a 4-5 minutos, pero una vez en línea se sacudieron.
Entonces, ¿qué me estoy perdiendo? A menos que sea una aplicación vital como ... No sé ... para el mercado financiero, aplicaciones médicas, exploración espacial, etc., ¿es realmente tan importante el tiempo de inicio?
PD: Me refiero estrictamente a las aplicaciones web, las aplicaciones de escritorio están destinadas a comenzar a la velocidad del rayo.
fuente
Respuestas:
Puede ser un factor importante durante el desarrollo: si su plataforma no admite el cambio de código en una aplicación en ejecución, entonces el tiempo de inicio se convierte en parte de su ciclo de retroalimentación, y allí, incluso 30 segundos son dolorosos y una amenaza para la productividad.
Para el entorno de producción, realmente no importa; o bien un poco de tiempo de inactividad es aceptable y 5 minutos aún no son mucho, o no lo es y usted tiene que implementar algún tipo de cambio en vivo.
fuente
Creo que este es el caso cuando el famoso principio dialéctico de Hegel de transición de la cantidad a la calidad realmente funciona.
Ya ves, el tiempo siempre es importante. Estoy de acuerdo con las palabras de Michael Borgwardt sobre la importancia de la construcción rápida durante el desarrollo / prueba, pero insisto en que (puede ser de alguna otra manera) también es muy importante para la producción.
Cada desarrollador que implementó algún código incorrecto en producción sabe que la revisión proporcionada en 5 minutos y en 1 minuto son cosas muy, muy diferentes.
fuente
La verdadera pregunta es si la aplicación funcionará sin la inicialización. Tenemos nuevos empleados que se obsesionan con el "rendimiento", mi respuesta común es que no me importa la rapidez con la que da resultados incorrectos. En mi humilde opinión, los algoritmos de destrucción porque "será más rápido de esta manera" y otras grandes ideas solo introducen errores.
Si se requiere la inicialización, hágalo. ¿Cuánto tiempo se perderá cuando los usuarios finales obtengan los resultados incorrectos, eventualmente descubran que la aplicación web está equivocada, lo llamen y se quejen, y tengan que regresar y depurar / corregir / probar / volver a implementar? ahora pregunte a su colega cómo se ha ahorrado tiempo. (y apuesto a que los núcleos de su servidor están inactivos al 99% de todos modos)
fuente
Esta pregunta no pregunta sobre ninguna plataforma en particular. Hay plataformas en las que el tiempo de inicio es realmente muy importante.
Por ejemplo, en Google App Engine; Si no se accede a su página (o mejor dicho, se accede a ella con menos frecuencia que otra aplicación en el mismo nodo), se descargará ocasionalmente.
Por lo tanto, si se encuentra en el 99% inferior de la frecuencia de acceso al sitio, el tiempo de inicio es el tiempo de acceso; su aplicación se reinicia en casi todos los accesos. si se encuentra en el 1% superior, entonces su aplicación se está iniciando en muchos nodos, y aunque muchos accesos a la página regresarán de una instancia ya iniciada, algunos todavía no lo harán, por lo que tendrá tiempos de acceso intermitentes y largos .
Esto mismo es cierto en muchos otros entornos de alojamiento. Las fugas en bibliotecas de terceros, o incluso en su propio código que simplemente han eludido el descubrimiento, pueden significar que la única forma confiable de ejecutar su servicio web es recargarlo de vez en cuando (entre 100 y 10,000), y así el tiempo de inicio se paga con frecuencia. El uso de este patrón es aceptable cuando una aplicación tiene fugas, pero se inicia rápidamente; no funciona cuando la aplicación tarda más de unos segundos en iniciarse.
fuente
Corre el riesgo de que su aplicación se considere inferior al estándar o, lo que es peor, su capacidad de desarrollo. Ahora, esta aplicación puede estar ahorrando a alguien tanto tiempo y / o hacer una tarea tan necesaria que los usuarios agradecidos pueden mirar más allá del largo inicio.
Puede llevar más tiempo programar de tal manera que la aplicación se cargue de forma perezosa, pero solo los interesados pueden determinar si vale la pena. Tuve un informe que se ejecutó en 55 segundos. y lo bajamos a 35. Nadie se dio cuenta. Aunque pasé el doble de tiempo entre 35 y 18, todos lo notaron y quedaron agradecidos e impresionados. Pasar de 5 a 3 minutos para una aplicación utilizada varias veces al año no es gran cosa. Los usuarios tendrán menos tiempo para pasar en Facebook o tomar un café.
La percepción es la clave. Si la empresa no está contenta con los equipos de desarrollo en general y esta aplicación específicamente, es posible que desee acumular buena voluntad y acelerar el proceso.
fuente