Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/02/2015, 02:39
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: [C] Estructuras vs mysql

Cita:
Iniciado por moro666 Ver Mensaje
cachear la información es una perdida de recursos, es 100% necesario o ya ampliaré el servidor si algún día lo necesito de verdad?
Como norma general, si optimizas en tiempo es a costa de memoria y si optimizas en memoria es a costa del tiempo.

Si tu cacheas información obviamente reduces el tiempo necesario para localizar la información puesto que ya la tienes cargada, no hay que pedírsela a la base de datos... pero claro, eso consume memoria y los servidores comerciales te imponen límites al consumo de memoria.

Por otro lado, si pasas de cachear la información, el servidor tendrá que hacer constantes búsquedas en la base de datos, y eso aumentará el tiempo que tarda la aplicación en contestar.

¿Qué es mejor? Pues haber, depende de varios factores que hacen complicado dar una respuesta a priori:

* Recursos disponibles en el servidor
* Velocidad del servidor web y del servidor de bases de datos
* Cantidad de información a cachear
* Forma en la que se va a usar la aplicación
* Cantidad de usuarios que debe soportar
* ...

Por eso te digo que es mejor ir adaptando la aplicación según las necesidades. Tomar el camino incorrecto solo por adelantarte a los acontecimientos te puede hacer perder tiempo y dinero de una forma muy sencilla.

Una forma de probar las prestaciones del servidor es crear una aplicación cliente que sea capaz de ejecutar una serie de peticiones que simulen un uso real (lo suyo sería tener varios casos de uso y que la aplicación eligiese uno al azar) y lanzar instancias paralelas de la aplicación para medir los tiempos de respuesta (puedes simular 4.000 usuarios simultáneos con pocos recursos).

Cita:
Iniciado por moro666 Ver Mensaje
P.D.: Soy algo novatillo en estos temas, podrías darme mas información sobre eso que has comentado del "profiler"?
Si tiras por Linux, tienes valgrind, que es una herramienta muy recomendable, además de gratuita (también las hay de pago y para Windows, esto solo intenta ser un ejemplo).

¿Qué cosas puedes hacer con esta herramienta?

* Detectar lagunas de memoria
* Depurar código
* Detectar en qué se consume el tiempo de ejecución del programa

Los profiler son herramientas muy recomendadas en las fases de producción y desarrollo, así que te recomiendo acostumbrarte a su uso.

Un saludo