Entradas etiquetadas ‘rendimiento

Hace mucho tiempo que quería hablar sobre los discos de estado sólido (Discos SSD), acrónimo en inglés de solid-state drive, es obviamente un dispositivo de almacenamiento de datos que usa memoria no volatil (flash) o memoria volátil (SDRAM) para almacenar los datos, en contrapartida a los discos duros convenciones que utilizan discos magnéticos.

Los SSD por lo tanto y sin entender mucho de la materia son más silenciosos, más rápidos en los tiempos de acceso y tienen menos latencia.

Aunque por el momento no se utilizan todo lo que deberían por diversos problemas o desventajas que pasamos a comentar en esta entrada, principalmente sus grandes desventajas es el precio y la capacidad, pero poco a poco las prestaciones de los discos SSD van mejorando y se están abriendo hueco en el mercado.

Ventajas

  • Gran velocidad de escritura
  • 10 veces más rápidos en lecturas que los discos convencionales
  • Menor consumo de energia y por lo tanto se calientan menos
  • Silenciosos
  • El rendimiento de los SSD es estables no disminuye al disminuir el espacio libre
  • Menos peso y menor tamaño
  • Más resistente y menos complejo
  • Tiempos de acceso mucho menores

Desventajas

  • Precio, los precios son considerablemente altos
  • Capacidad, disponen de mucha menos capacidad si lo comparamos con los discos convencionales
  • Vida útil, aunque cada vez se nota menos, las memorias flash tienen un límite de ciclos de escritura, normalmente desde 1.000.000 hasta 5.000.000 de ciclos. Algunos sistemas de archivos especiales pueden mitigar este problema repartiendo los datos a lo largo de todo el disco.

Discos SSD en servidores

Aunque se conocen de sobra las excelencias de los discos SSD, debido a su precio y en algunas ocasiones a su poca capacidad no están demasiado extendidos en lo que respecta al uso de servidores.

Personalmente he utilizado he utilizado sistemas (Linux y Windows) con ambos tipos (SSD y discos convencionales) y la diferencia entre uno y otros es abismal, los resultados del sistema con discos SSD en lo que a servidores se refiere son notablemente mejores que con discos convencionales en gran medida gracias al incremento en las velocidades de escritura y lectura frente a los para mí ya obsoletos (para servidores) discos rotacionales o discos convencionales.

Sin duda si lo que se necesita es un servidor de alto rendimiento la mejor opción es utilizar discos de estado sólido y más aún cuando estos servidores tienen un número elevado de escrituras, es decir un servidor dedicado para el uso de MySQL (por ejemplo) aumenta en gran medida su rendimiento con el uso de discos SSD.

Algunas curiosidades

  • Técnicamente no son discos a pesar de que en castellano tendamos a traducir la “D” de SSD por disk se trata de drive.
  • Impresionante: Tiempo de carga de disco duro normal vs disco estado solido (ssd)
  • En un estudio de grabación es muy importante el silencio. Los discos SSD permiten reducir el ruido que el ordenador genera, eliminando al 100% el sonido del disco duro
  • Soporta caídas, golpes y vibraciones sin estropearse y sin descalibrarse como pasaba con los antiguos Discos Duros.

TweetNginx es un servidor web de alto rendimiento escrito por Igor Sysoev, desarollado para una de las web más visitadas de Rusia (Rambler), además se trata de una de las mejores alternativas a Apache, líder indiscutible del mercado. Actualmente se calcula que el 7% de páginas web corren bajo Nginx. Algunas de esas páginas son [...]

Aquí os dejo unos pocos trucos para escribir menos código PHP en tus scripts, seguro que algunos de estos trucos ya los conocías pero bueno me parece interesante recopilar estos trucos.

Reducir las sentencias if()


if($variable == 2)
{
$valor = true;
}
else
{
$valor = false;
}

Podríamos condensar esas 8 líneas de código en una única línea:

$valor = ($variable == 2) ? true : false;

Declarando variables

A menudo declaramos multiples variables cada una en líneas separadas, todas estas variables se podrían llegar a agrupar en una única declaración.

$variable1 = 7;
$variable2 = 12;
$variable3 = 9;

Podríamos declarar varias variables con diferente valor en una única línea de la siguiente manera:

list($variable1 ,$variable2 ,$variable3) = array(7,12,9);

Y más fácil todavia si las variables declaradas coinciden en el valor asignado:

$variable1 = $variable2 = $variable3 = “Prueba”;

Usar switch() en lugar de if()

Parece algo lógico pero muchas veces utilizamos if() dónde podríamos ahorrar código usando switch():

if($opcion == “menu”)
{
//cargar menu
}
elseif($opcion == “portada”)
{
//cargar portada
}
else
{
//no cargar nada
}

Usando switch() podríamos reducir el código ostensiblemente:

switch($opcion)
{
case ‘menu’:
//cargar menu
break;
case ‘portada’:
//cargar portada
break;
default:
//no cargar nada
}

Son sólo tres trucos pero seguramente te pueden ahorrar muchas líneas de código si sabes aplicarlos correctamente.

* Si alguien tiene pequeños trucos para optimizar código PHP le animo a que lo comente y enriquecer un poco esta entrada.

Salvemos Internet Explorer 6

12 de febrero de 2010

en: Internet

Me ha parecido bastante graciosa esta página que nos pide ayuda para poder salvar IE 6: Save IE6, hace unos días escribía sobre el más que cercano fin de IE6 y me ha parecido curiosa esta iniciativa.

Es verdad que es el navegador web más usado durante su vigencia (superando a Internet Explorer 5), alcanzando un máximo de alrededor del 95% de cuota de utilización en 2002 y 2003 que es cuando empezó a disminuir constantemente hasta 2007 donde perdió rápidamente la primacía del mercado ante Internet Explorer 7.

Estos son los motivos por los que nos piden ayuda para salvar a IE 6, ¿Suenan convincentes verdad?

Hoy en día estamos inundados de navegadores con gran cantidad de funcionalidades que complican nuestras vidas. Sin embargo, hay una excepción: IE6. Ha sido desde 2001 y sigue siendo uno de los más potentes y versátiles navegadores del mercado.

Es verdad que es el navegador web más usado durante su vigencia (superando a Internet Explorer 5), alcanzando un máximo de alrededor del 95% de cuota de utilización en 2002 y 2003 que es cuando empezó a disminuir constantemente hasta 2007 donde perdió rápidamente la primacía del mercado ante Internet Explorer 7.

Es por eso que queremos lograr lo siguiente:

* Que todo el mundo utilice Internet Explorer 6
* Obtener IE6 compatible con más plataformas
* Conseguir que el estándar W3C cambie para poder adaptarse a IE6

Estas son algunas reglas básicas a la hora de desarrollar un buen “producto web”, probablemente si desarrollas aplicaciones con asiduidad tienes en cuenta algunas de ellas pero si no las conoces y te gustaría empezar un proyecto seguro que te vendrá bien echarle un vistazo.

Desconfia de los usuarios

Suena duro pero es la verdad, no quiero decir con esta afirmación que todos los usuarios sean maliciosos pero lo que si es cierto es que mientras más desconfies más preparado estarás cuando algo no deseado suceda, intenta comprometer lo menos posible tu aplicación evitando todos aquellos agujeros de seguridad que esten en tu mano, tambien es importante que no te centres unicamente en la seguridad… ten en cuenta que muchos usuarios por desconocimiento de la aplicación harán un uso incorrecto de la misma, un buen ejemplo de ello lo tenemos a la hora de rellenar los formularios, hay que asegurarse y validar todos los datos introducidos por los usuarios.

No, no se trata de un baile que mejora el rendimiento de PHP sino de un proyecto Open Source de Facebook que comenzó hace 2 años debido a que las funcionalidades existentes para optimizar PHP se antojaban insuficientes.

HipHop se trata de una especie de transformador de código fuente que toma el PHP y lo convierte en C++ para ser compilado con g++, para explicarlo de una manera rápida y sencilla podríamos decir que HipHop permite que cualquier desarrollador pueda escribir código PHP pero que el código final se ejecute con el rendimiento que ofrecería el código de un programador experto, el resultado es una mejora de rendimiento del 50%.

Y es que Facebook poco a poco irá siendo a PHP lo mismo que Google es a Python, si lo pensamos es realmente positivo cuando una gran empresa que utiliza una tecnología sobre la que depende su negocio se dedica a mejorar dicha tecnología no sólo para beneficiarse ellos mismo sino para beneficiar a la comunidad de desarrolladores y consumidores de dicha tecnología.

Para entenderlo mejor primero hay que saber como funciona PHP, PHP es un lenguaje de programación interpretado como Ruby, Python y Perl, esto es genial para la productividad de los desarrolladores porque no es necesario compilar el código pero tiene por contra unos requerimentos de memoria y consumos de CPU mayores que un lenguaje compilado como es el caso de C++, por lo tanto HipHop al tranformar el código PHP a código C++ nos permite disfrutar de lo mejor de ambos lenguajes.

¿Cómo ha mejorado HipHop a Facebook?

  • Web — 50% menos de consumo de CPU con el mismo tráfico
  • API — 30% menos de consumo de CPU con el doble de tráfico

La mejora de rendimiento de Facebook ha sido probada de manera progresiva en sus propios servidores y ahora un 90% de los servidores de Facebook utilizan HipHop, la mejora cómo hemos vistos se divide en mejoras relacionadas con al Web y relacionadas con el uso de la API, la clave para la diferencia de mejora entre Web y API radica en que la Web requiere operaciones más complejas que la API.

¿Hay algún tipo de limitación?

Con HipHop no podrás utilizar funciones como eval() y create_function(), la naturaleza dinámica de estas funciones hace imposible su conversión a código C++, sin embargo estas funciones no son de las más populares entre los desarrolladores de PHP.

Actualmente HipHop no puede ser ejecutado en Apache pero se trabaja en ello.

¿Dónde puede encontrarlo?

HipHop será liberado dentro de poco pero por el momento nos tenemos que conformar con la entrada en el blog de Facebook o con esta presentación.

Me gustaría que dejaraís vuestra opinión sobre el tema y si alguien tiene información adicional que la aporte ya que creo que se trata de una excelente noticia y más aún tratándose de PHP que como hemos comentado anteriormente se trata de un lenguaje de programación tremendamente flexible pero muy difícil de escalar cuando hablamos de sitios web de gran tráfico.