Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Rendimiento de Frameworks PHP

Iniciado por Capiflash, 10 de Noviembre de 2007, 07:04:40 PM

« anterior - próximo »

Capiflash

Es un tema que me preocupa bastante este... el rendimiento de los frameworks de php . He estado buscando comparativas y demas pero parece que no hay alguna ( o google me ha toreado ) .

Alguno tiene experiencias con un framework y puede poner la mano en el fuego por el? Que tipo de aplicacion programo? Cuantos usuarios conectados a la vez pudo soportar??

Son preguntas sin respuesta hoy por hoy para mi y no consigo sacarmelas de la cabeza... a ver si me ayudais :P

Saludos!

josepzin

Yo uso Cake, pero no tengo idea del rendimiento.

Un amigo hizo pruebas con varios frameworks y me dijo que Cake respondió muy bien, pero no tengo los detalles.

Capiflash

Un resultado de google
http://www.sellersrank.com/web-frameworks-benchmarking-results/

A ver si vamos sacando mas cosas en claro :P

Venga venga , q hablen vuestras experiencias!

CoLSoN2

Si el rendimiento es algo que realmente te preocupa, pues vas a tener una gran cantidad de usuarios concurrentes en tu web, no creo que ninguno de los frameworks orientados a la programación ágil como Cake u otros con un paradigma de programación similar a Ruby on Rails te sirva, pues no están enfocados a optimizar el rendimiento sino a aumentar la productividad.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Tei

algo que me preocupa de PHP, es que el mecanismo de sesiones es bloqueante, las sesiones se ejecutan una detras de otra (!!!)(la misma sesion, con varias ventanas, quiero decir).  y como efecto secundario, usan una unica conexion a mysql  :(

o al menos algo asi lei el viernes pasado.

habria que aclarar esto, porque lo representen o no las pruebas de velocidad, puede ser muy importante si un framework cae en esta trampa o no..

..aunque yo trabajo en un framework deseñado de forma bastante nefasta contra esta posibilidad, y no he notado problemas de velocidad.

Capiflash

Pues igual tengo que plantearme el usar o no un framework... porque la web tendra muchos muchos muchos usuarios simultaneos pidiendo y enviando info al server , muchas sesiones simultaneas , etc.... a ver si la almohada me ayuda a pensar mejor ( y mañana leo lo que me digais tb :P )

Saludos!

josepzin

Yo creo que si la mierd@ de Joomla se aguanta lo que se aguanta, con lo que tiene que hacer por cada operación... no creo que haya mayor problema por usar un framework...

Capiflash

Relmante pensais que el servidor con tanta carga , no se petara usando un framework para todo eso? Quizas me cueste mas tiempo el desarrollarlo todo sin usar ningun framework , pero si en el momento d la verdad el framework no rinde... uf no quiero ni pensarlo

Kr0n

Lo que dice Colson es cierto, pero...  a medias.

Por ej. Django, framework de Python muy bueno, es muy muy resistente en cuanto a carga de servidor. Según dice en su página web resiste sin problemas un slashdot o similar. Por que? Pues porque tiene un sistema cacheo integrado tremendo, esta optimizado, etc. Lo desarrollaron teniendo muy presente la escalabilidad y encima esta más que testeado con sitios de tráfico bestia (por ej. la página del www.washingtonpost.com ).

En concreto el problema con RoR, que es por lo que decía lo de la verdad a medias de Colson, es la escalabilidad en grandes entornos. Pero no se puede extrapolar que RoR no esté pensado para grandes entornos, con otros frameworks totalmente distintos.
Citando una entrevista con uno de los desarrolladores de Twitter, que se las vieron y se las desearon por este tema:

CitarBy various metrics Twitter is the biggest Rails site on the net right
now. Running on Rails has forced us to deal with scaling issues

CitarAt this point in time there’s no facility in Rails to talk to more than one database at a time. The solutions to this are caching the hell out of everything and setting up multiple read-only slave databases, neither of which are quick fixes to implement. So it’s not just cost, it’s time, and time is that much more precious when people can[’t] reach your site.None of these scaling approaches are as fun and easy as developing for Rails

CitarAll the convenience methods and syntactical sugar that makes Rails such a pleasure for coders ends up being absolutely punishing, performance-wise. Once you hit a certain threshold of traffic, either you need to strip out all the costly neat stuff that Rails does for you (RJS, ActiveRecord, ActiveSupport, etc.) or move the slow parts of your application out of Rails, or both.

CitarAll of us working on Twitter are big Ruby fans, but I think it’s worth being frank that this isn’t one of those relativistic language issues. Ruby is slow.

Fuente. Ojo, la entrevista es de marzo, desconozco si RoR se ha puesto las pilas con respecto a escalabilidad. Aquí otro enlace sobre Rails & Performance.

Para el caso particular de Capiflash, yo no me preocuparía tantísimo por performance con un framework PHP. Es como si estuvieras diciendo "que hago? uso phpBB como software para un foro o mejor lo hago a medida yo por si me peta?" Probablemente el framework esté bastante más optimizado que si hicieras tú el desarrollo, a menos que seas el rey de la optimización PHP & MySQL & memcached y tengas tiempo ilimitado, que puede ser ;)

A ver, si ves que tienes un proyecto entre manos que vas a necesitar relativamente pronto distribuir tu base de datos en varios servidores debido a la carga (y eso no pasa todos los dias), pues mira, igual necesitas hacer un estudio de performance antes de embarcarte con un framework u otro (fijate que no digo, "deberías descartar el uso de un framework") y ver en que condiciones de arquitectura de sistemas vas a desarrollar. Una cosa que te puede ayudar, es que busques ejemplos de sites desarrollados con un framework u otro, y tirando de Alexa por ej. te puedas hacer una idea tal que "vale si el site Y rula perfecto con el framework Z, mi site X no creo que llegue a tanto" (y ojo, si realmente hablamos de grandes entornos, entonces también influye la arquitectura del site claro, mirate http://highscalability.com/).

Pero francamente decir "si usas framework, olvídate de performance" me parece inapropiado, y no hay más que ver el ejemplo del Washington Post ;)
- Por un stratos menos tenso -

Orgulloso limpiador de www.fregocles.com
visualizeus - favoritos sociales para imágenes

CoLSoN2

Kr0n ha detallado lo que yo quería decir, que quizá se malinterpretó. Obviamente no todos los frameworks son iguales, y los hay de muy óptimo (aunque en Python no he probado ninguno). Lo que quería decir es que Cake y RoR son muy populares por que es fácil y "cool" programar con ellos, pero so tiene una penalización en rendimiento importante.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

josepzin

De "cool" no sé..., pero de práctico MUCHO!

Como leí por ahi ante esta pregunta "si algun día tu proyecto supera el volumen de visitas que soporta Cake, entonces ese día ves la manera de optimizarlo" :D:D:D

Capiflash

Menudo post Kr0n , se agradece el esfuerzo :)

La verdad , firmaria ahora mismo que mi proyecto mantenga conectados simultaneamente a 1000 usuarios . Puede que el volumen de datos que maneje la BBDD sea grande , pero quizas la información del "momento" con la que trabaja no sea tan grande....

Toda una verdad lo que has dicho , probablemente un framework este siempre mas optimizado que mi código , asi que mejor no reinventar la rueda ( y encima mal o medio mal )

CodeIgniter parece tener una muy buena documentacion ,  y bastantes proyectos a su "espalda" . Voy a darle un voto de confianza , y en cuanto tenga "datos" de como rinde , lo pongo aqui por si a alguien le sirve , saludos y gracias!

Tei

Cita de: "Capiflash"Pues igual tengo que plantearme el usar o no un framework... porque la web tendra muchos muchos muchos usuarios simultaneos pidiendo y enviando info al server , muchas sesiones simultaneas , etc.... a ver si la almohada me ayuda a pensar mejor ( y mañana leo lo que me digais tb :P )

Se me ha malinterpretado. Muchos usuarios es OK.  Pero un solo usuario que cause 30 procesos en el servidor puede encontrar (no lo va a notar, pero puede ocurrir asi) que esos 30 ocurren uno detras de otro. Lo que he leido, es que cuando cada uno de esos procesos llegue a session_start(), no saldra de session_start() hasta que otro qeu haya entrado en session_start() cierre (con exit, o terminando de ejecutar los php).

De todos modos, no me canso de decir que esto lo he leido en un comentario de php.net y no esta confiramdo.

yens

Symfony (creo que se escribia asi) está siendo utilizado para la nueva versión de del.icio.us y otras cosillas interesantes y están contentos con el rendimiento, son webs que tienen algo más que un par de visitas. Te lo recomiendo frente a cualquier alternativa, muchísima más documentación, y muy bien explicadita, cosa que veo importante, porque bastante cuesta adaptarse a algo nuevo como para que te hagan perder tanto tiempo.

Diferencial

Ahorrate quebraderos de cabeza y pasate a asp.net
PARA TENER COSAS QUE NUNCA HAS TENIDO, TENDRÁS QUE HACER COSAS QUE NUNCA HAS HECHO.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.