edición general
379 meneos
 

Google - Hagamos que la web sea más rápida [ING]

Un compendio de artículos acerca de la optimización en la Web: CSS, HTML, Javascript, Imágenes... de obligada lectura, casi.

| etiquetas: web , diseño , optimización
183 196 0 K 542 mnm
183 196 0 K 542 mnm
No olvidemos las consultas SQL. El problema de hoy en día que me encuentro es:

Bases de datos no optimizadas
"Programadores" sin conocimientos en BBDD relacionales

Captain Obvious tips (sql server):

1. Usa la clausula Top después de select si sabes cuantos registros te han de devolver.
2. No devuelvas * por omisión, seguramente sólo usarás un par de campos, a no ser que sea inevitable.
3. Si necesitas registro aleatorio usa order by newid() , y no inventes la…   » ver todo el comentario
Lo mismo (o más) pero de yahoo developer.yahoo.com/performance/rules.html
La solución la tenemos en la mano. No desarrolles tu propio HTML, usa frameworks que abstraen esta traducción. Además te da la ventaja de que la tecnología la usas como bridge entre tu interfaz y el código "nativo" en este caso el HTML.

De esta manera, todas las aplicaciones desarrolladas actualmente, si quieren cambiar a html5 tendrán de "redesarrollarse" o adaptarse al nuevo lenguaje. Con tecnologías como Groovy, Grails, GWT, Google Gears, etc, te olvidas un poco del HTML (casi diría que del todo) y consigues desacoplar tu implementación de la tecnología final de presentación. Además, digamos, que es más fácil delegar en este tipo de soluciones que saberte al dedo todos los tricks para optimizar tu página.
#10 Yo añadiría:
- Informarse bien sobre los tres tipos de cache de mysql (key, table y query)
La query cache es la que hace que, con consultas consecutivas, de la segunda en adelante vaya más rápido.
- Usar NO_SQL_CACHE en la consulta para hacer pruebas (SELECT NO_SQL_CACHE campos FROM tabla...)

Por cierto, no sabía que se podían usar procedimientos almacenados, gracias por la info :-)
En optimización de php fallan como escopetas de feria. Por ejemplo, se olvidan que php5 es orientado a objetos y crea referencias cuando igualas variables.

Lo que dicen aquí es simplemente incorrecto:

Don't copy variables for no reason.

Sometimes PHP novices attempt to make their code "cleaner" by copying predefined variables to variables with shorter names. What this actually results in is doubled memory consumption, and therefore, slow scripts. In the

…   » ver todo el comentario
#4
pruben@ruben-laptop:~$ python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 'evil'[1:3]
'vi'
>>>
Don't use concatenation with echo.

Many novice PHP programmers are unaware that you can pass multiple variables to the echo, separated by commas, instead of concatenating them first. Using the decimal character, shown in the first example, results in poor performance, because the PHP engine must first concatenate all of the variables together and then print, whereas in the second example, it prints them all in the order provided.

BAD:
echo 'Hello, my name is' . $firstName . $lastName . ' and I live in ' . $city;

GOOD:
echo 'Hello, my name is' , $firstName , $lastName , ' and I live in ' , $city;
#2 ¡no puede ser! vi is a subset of evil!
¡En Google usan VI! code.google.com/intl/es/speed/articles/optimizing-php.html :-O

Por cierto, me encanta el "inglés for dummies" que usan la gente de Google :-P
#14 No se trata de lo que ocupe o deje de ocupar el archivo PHP. El problema está en:

- Tiempo de ejecución del PHP
- Tamaño del archivo HTML generado

El tamaño del archivo PHP no importa en el 99% de los casos. El tiempo de ejecución usando ' es menor que usando " y el tamaño de archivo HTML generado es el mismo.

Además personalmente considero que las ' son más estéticas :-P
Por mi experiencia, uno de los métodos más sencillos y efectivos para optimizar una web es:

- Usar correctamente los índices en la BD.

Con un simple "clic" en el PhpMyAdmin o una simple consulta SQL, he visto reducir el tiempo de carga de una página de 4-5 segundos a menos de medio segundo.
#11
no me refiero a Mysql los tips, pero gracias, ya que desconocía esto y ahora sólo uso MySql

en cuanto a los procedimientos , en mysql si se puede (creo no se mucho de mysql)si te dan los permisos necesarios...si puedes ese es el problema de siempre de un hosting compartido, nada como tu servidor dedicado ;)
Por fin!!! alguien que me entiende!!!

Cuantos clientes me habran dicho que eso de optimizar paginas es una mierda, que con el ancho de banda que tenemos no vale pa nada.... que ellos quieren una pagina en flash tope guay que tenga ruidoss... en fin.
Qué consejos más excelentes!
Esto definitivamente va a mis páginas favoritas...
Muchas gracias por el enlace, por ahora me he leído el de Page Speed y el de PHP para novatos y me han ayudado mucho. :-)
Son buenos consejos todos, pero mucha pompa me parece para tan poca chicha. El vídeo es muy efectista pero no es la vía más eficaz para comunicar este tipo de contenido.
#10 Si realmente se producen embudos en una BDD relacional creo que es hora de hacer un cambio y saltar a BD's más escalables y no relacionales (principios de Cloud Computing). Con una buena normalización (sin pasarse, puede llegar a ser ilegible la capa de persistencia) se consigue unos milisegundos en consultas donde los índices tienen bastantes ramas.

Si bien todo eso ayuda, también hay que contar con un buen administrador de BDD que no deje que el árbol de nuestras tablas parezca la…   » ver todo el comentario
#16 Este mundo está lleno de gente que no sabe lo que quiere, pero que estaría dispuesta a cruzar el infierno para conseguirlo

Muchas páginas hechas en flash, carecen de funcionalidad, escalabilidad, usabilidad (a veces el usuario tiene que esperar a que terminen las animaciones entre cada cambio de producto), y no son bien indexadas por los buscadores. Son como un batmovil muy bonito pero hecho de cartonpiedra
En el PHP lo mejor es cerrar el php, tal que así:

...?>This is a <?=$type?> string<?php...

Yo lo hago así, no uso echos a no ser que sean para mostrar una única variable o para cosas muy específicas.
#0 #5 #10 #19 Buenísimos consejos. ¡Gracias!

Me vienen muy bien dado que trabajo con estas cosillas (soy autodidacta). :-D

Por cierto, viendo esto → tinyurl.com/ltzb5z qué ganas de que se estandarize el uso de HTML 5.
"BAD:
$output = "This is a plain string";

GOOD:
$output = 'This is a plain string';

BAD: $type = "mixed";
$output = "This is a $type string";

GOOD:
$type = 'mixed';
$output = 'This is a ' . $type .' string';"

Esto no por favor, jamás cambiaré mis " por ', solo cuando hay mucho html y no quiero poner " y olvidénse de cambiar "This is a $type string" por 'This is a ' . $type .' string', ¡ocupa más!
#26 frameworks como GWT usan disgregadores, es decir, generan varias interfaces (de modo transparente tanto para el administrador que despliega la aplicación como para el dev) y en el punto de entrada disgrega los comportamientos de los componentes en función del UserAgent.
Meneo y a favoritos para leérmelo entero con calma (antes me lo he leído por encima, eh? :-D).
Pues no estaría mal que para hacer la web más rápida su navegador consumiese menos memoria :roll:
#27 a su cuenta y riesgo? Pero tú en qué época vives? Conoces lo que es el CDD? O sea, pretendes seguir haciendo llamaditas AJAX a pelo? Estructurando los paneles (div en este caso) por ti mismo?

Todos los frameworks de desarrollo web (al menos en j2ee) están abandonando ese estilo de programación porque es mucho más rentable el Component Driven Development, básicamente porque te olvidas de cómo está hecho el componente, sabes que tiene X fucionalidad y punto. Si quieres modificar la…   » ver todo el comentario
comentarios cerrados

menéame