VÃa el blog de Emili Parreño, he descubierto un wiki con el top100
mundial de aplicaciones Rails:
http://www.eparreno.com/2008/09/05/las-100-aplicaciones-rails-con-mas-trafico
Y jugando con el Google Trends, descubro que mi verema.com está en el
cincuentaytantos… moooolaaaaa!!
http://www.verema.com
http://trends.google.com/websites?q=verema.com%2C+communitywalk.com%2C+howcast.com%2C+ma.gnolia.com%2C+basecamphq.com
Aunque dudo de su fiabilidad, porque lacoctelera nos da mil vueltas y
sin embargo sale más abajo…
Por cierto, del blog de Emili, me ha gustado mucho su último post sobre
optimización:
http://www.eparreno.com/2008/09/13/optimizacion-mejorando-las-consultas-mysql-en-rails-i/
Algunos de los consejos que da han quedado desfasados con la versión de
rails 2.1.1, que es mucho más eficiente construyendo SQLs que las
versiones anteriores (particularmente find_by_sql ha perdido mucho
interés), pero hay temas como los Ãndices que son terriblemente
efectivos… y lo del cache de modelos es un descubrimiento para mÃ,
pero tiene muy pero que muy buena pinta, y tengo un caso perfecto para
probarlo con el gestor de banners de mi aplicación, que se usa en casi
todas las páginas pero cambia muy poco.
Por cierto, si alguien tiene que mejorar las prestaciones de una
aplicación:
1.- Si no está en Rails 2.1.1, es hora de migrarla.
2.- Buscad los puntos débiles con New Relic, http://www.newrelic.com/ .
Incluso la versión gratuita es una pasada.
3.- Cuidado con el will_paginate; si tenéis tablas muy grandes y os pone
un enlace a la última página, normalmente eso obligará a recorrer todos
los registros y será una consulta extremadamente pesada (y no hay forma
de optimizarla); y lo peor de todo es que, debido a ese enlace, Google
os indexara esas páginas, y tendréis tráfico en ellas… con sólo
limitar los enlaces a las 10 primeras páginas, y permitir acceder al
resto pero con NOINDEX, he rebajado el nivel de carga de la Base de
Datos a menos de la tercera parte!! Y sólo he tocado una sección, que
era el cuello de botella del sistema.
s2