Cómo afecta un hosting a la velocidad de carga de una página web

Publicado en WebPerf · 06 agosto 2019.
Diferentes tipos de complejidad computacional

Durante mi paso por la carrera de informáica( que no llegué a terminar ) cursé una asignatura en el que había que estudiar la complejidad computacional de los algoritmos. Para facilitarme la tarea de estudiarla busqué en internet apuntes que me sirvieran de ayuda para su estudio. A continuación dejo un ejemplo extraído de uno de esos apuntes por considerarlo interesante y actual( lo mismo serviría si estuviéramos hablando de servidores y páginas webs, de ahí el título de la entrada ). Por desgracia, desconozco su autoría:

Una pequeña empresa de ex-alumnos de Ingeniería Informática de la UNED ha desarrollado un sistema de visión artificial capaz de reconocer el rostro de una persona y determinar si coincide con alguno de los almacenados en una base de datos. La máquina ha tenido muy buena aceptación como sistema de control de accesos( cerradura automática ) y varias empresas lo han comprado. El algoritmo de comparación de caras se puede ejecutar, en principio, en un ordenador personal de gama baja. El tiempo que el sistema tarda en procesar una imagen depende del número de estas imagenes( a partir de ahora, denotaremos como n el número de imagenes ) almacenadas en la base de datos.

Tras haber vendido varios sistemas a pequeñas empresas, varias medianas empresas y un gran hospital se han interesado por él y lo han comprado. Sin embargo, al poco tiempo se reciben quejas de estas empresas en relación con el excesivo tiempo que requiere el proceso de reconocimiento.

Ante estas quejas, los desarrolladores realizan unas pruebas de velocidad de reconocimiento para distintos tamaños de base de datos, siempre ejecutando el programa de reconocimiento sobre el ordenador de gama baja mencionado. Los resultados son:

Número de imagenes en base de datos: 10 50 100 200
Tiempo de reconocimiento( segundos ): 1 25 100 400

Es indudable que el tiempo de reconocimiento para base de datos de 100 imágenes o más es inaceptable, para un sistema de 200 personas con acceso autorizado han de pasar 6 minutos ante la camara. Se decide probar a sustituir el ordenador por uno con procesador Pentium y más memoria, en lugar del humilde 386 original. Las pruebas con el nuevo ordenador arrojan los siguientes resultados:

Número de imagenes en base de datos: 10 50 100 200
Tiempo de reconocimiento( segundos ): 0.2 5 20 80

El tiempo se ha reducido, sin embargo, es de más de un minuto todavía para una empresa de 200 personas. Además, si se prueba con una de 1000 el tiempo es de 2000 segundos( algo más de media hora ), lo cual es claramente inaceptable.

Puesto que se desea poder vender el sistema a grandes organismos y empresas, los nuevos empresarios deciden aplicar los conocimientos en eficiencia de los algoritmos y tratar de desarrollar un algoritmo más eficiente. Las pruebas sobre el ordenador de bajas prestaciones dan ahora el resultado:

Número de imagenes en base de datos: 10 50 100 200
Tiempo de reconocimiento( segundos ): 0.3 2.82 6.64 15.3

Con este nuevo algoritmo el tiempo para 200 puede ser aceptable, aunque todavía algo alto. Probando en un ordenador de gama alta se obtiene:

Número de imagenes en base de datos: 10 50 100 200
Tiempo de reconocimiento( segundos ): 0.07 0.56 1.33 3.06

Los tiempos son ahora muy buenos. Deciden adoptar el nuevo algoritmo e instalar los ordenadores más potentes. Instalan su sistema en grandes empresas, hospitales, ministerios...y se forran.

Moraleja:

  1. Ante un mal algoritmo el aumento de potencia de procesador no conduce a mejoras importantes, especialmente cuando el problema a tratar crece. El cambio de ordenador no consigue reducir el tiempo a un valor aceptable para número de imágenes( n ) alto.
  2. Un algoritmo mejorado produce buenos resultados incluso para procesadores poco potente. El segundo algoritmo del ejemplo ha logrado colocar el tiempo en valores casi aceptable incluso para ordenador de baja potencia.
  3. Un algoritmo mejorado permite aprovechar mejor las ventajas de un procesador más potente de forma que es posible tratar en un tiempo de proceso inferior problemas más complejo. Supóngase que se limita el tiempo aceptable de reconocimiento a 3 segundos. Con el primer algoritmo, en el ordenador lento se tiene un número de imágenes( n ) máximo aceptable de 17. Al pasar, con ese mismo algoritmo a un ordenador rápido se obtiene un n máximo de 39. Con el segundo algoritmo y ordenador lento n es 52 y pasa a valer 200 para ordenador rápido. Es decir, en el primer caso al cambiar de procesador aumenta en un factor poco más de dos el tamaño del problema tratable en un tiempo dado, en el segundo caso en un factor de casi cuatro.
  4. Matemáticamente hablando, el primer algoritmo es de orden cuadrático, más en concreto 0.001n2 para el ordenador de gama baja y 0.002n2 para el de gama alta. Mientras el segundo algoritmo es del orden nlogn, en concreto 0.01nlogn para ordenador de gama baja y 0.02nlogn. Como se puede ver, el cambiar de hardware tan sólo es un factor multiplicativo. Cambiar de algoritmo, implica cambiar la naturaleza del mismo, lo que implica un cambio drástico en su velocidad.

Nota final:

Lo más fácil es pensar que si queremos una web más rápida es necesario un hosting más rápido. Sin embargo, si queremos experimentar una gran mejora en la velocidad de nuestra web lo mejor es invertir en mejorar el código de la misma.

¡ Compártelo !
Este sitio utiliza cookies propias y de terceros para mejorar tu experiencia con el sitio web. Al continuar con la navegación consideramos que acepta su uso.