Ver Mensaje Individual
  #25 (permalink)  
Antiguo 13/02/2006, 12:30
MaxExtreme
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Cita:
Iniciado por liberfg
Esto se esta poniendo muy interesanate para mi. Esta bueno ver todos los puntos de vista y opiniones. Todos concuerdan con MaxExtreme en la perdida de rendimiento con una aplicacion web?

Saludos
El problema no es que sea web (las primeras aplicaciones web se programaban en C y Perl).

El gran problema es que PHP es código interpretado, es decir, tu ordenador ejecuta un programa que a su vez lee un fichero de texto (.php) y tiene que analizar las líneas y hacer lo que dicen (como lo que hace un compilador).

Otro problema, es el servidor SQL, gasta recursos como cualquier otra aplicación.

Otro más, es el tema de las conexiones entre programa y SQL. No sólo gastas en fabricar las llamadas SQL "GET tal FROM tal", también el servidor en recibirlas y re-procesarlas.

Otro más, esas conexiones funcionan mediante TCP/IP, por lo que el sistema debe estar manejando el protocolo TCP, el IP, y la tarjeta de red; como cuando navegas por Internet.

(etc). La carga no sería tanta si dispusieras de varios ordenadores, porque el gran problema, el servidor SQL, ya no estaría. Ahora bien, si juntas todo en 1 sólo ordenador...

Todos estos problemas literalmente "desaparecen" con una sola aplicación.

Ejemplo: Cambias un valor en tu BD. En un programa nativo supondrá esto:

ActualizarValor(123); -> Cambiará el valor en la memoria RAM (acción realizada en micro-nanosegundos).

En cambio, si tu haces el par PHP+SQL, harás:

ActualizarValor(123); -> Debes transformarlo en una sentencia SQL:
EscribirValorSQL(123); -> A su vez, enviará a través de la API SQL:
EnviarSentencia("lo que sea"); -> Ese dato viajará por TCP/IP
send(); -> Aquí el sistema se pondría a trabajar con TCP/IP (unos 0.010 segundos en red local para que llegue al destino, otra cascada de código a procesar).
recv(); -> El sistema del servidor recibirá por TCP/IP la orden (otra cascada aquí)
RecibirSentencia(); -> Que se transformará en una orden (otra cascada de órdenes aquí)
GuardarValor(123); -> Ahora SÍ guardará el valor.

¿Ves la diferencia de cascada de órdenes? (Es un ejemplo _simple_). Si se entiende cómo funcionan las cosas "por dentro", entiendes la cantidad de procesamiento que requiere llevar a cabo una sencilla operación como enviar un dato a un servidor SQL. Sólo el protocolo TCP/IP no sabes la de líneas de código que lleva...