Actualmente estamos en una era en la que los avances tecnológicos se dan casi diariamente; por lo que es necesario conocer las diferencias entre los diferentes tipos y marcas de procesadores que hay en el mercado, ya sea al momento de adquirir un computador nuevo o simplemente comparando cual CPU se amolda mejor a nuestras necesidades.
En el documento que se direcciona mas adelante, se hace un análisis comparativo de rendimiento entre dos computadores con diferencias considerables (Computador High End actual VS Computador de gama media de hace 5 años):
La investigación que se expone a continuación se llevó a cabo a partir de la motivación de conocer con anterioridad a su utilización, el rendimiento de un Servidor Web.
En el documento que se direcciona mas adelante, se hace un analisis comparativo de rendimiento entre los Servidores Web Apache2, Lighttpd y Cherokee, a traves de diferentes tipos de programas web:
La investigación que se expone a continuación se llevó a cabo a partir de la motivación de conocer con anterioridad a su utilización, el rendimiento de un sistema de gestión de bases de datos (DBMS).
En el documento que se direcciona mas adelante, se hace un analisis comparativo de rendimiento entre los sistemas de gestión de bases de datos MySQL, PostgreSQL y Firebird, a traves de diferentes tipos de consultas SQL:
En los sistemas GNU/Linux existen una gran variedad de comandos básicos de monitorización tales como: time, vmstat, iostat, gcov, gprof, top y otros. A continuación se desarrolla una experiencia del uso de dichos comandos para monitorizar distintos algoritmos de ordenamiento desarrollados en C, tales como: Bublesort, Quicksort y Mergesort. Estos algoritmos se prueban en base a un archivo de aproximadamente 20 MBytes que contiene numeros al azar linea a linea. El objetivo de cada ordenador es recibir este archivo y generar un nuevo archivo con los numeros ordenados. Finalmente, en base a los resultados arrojados por los diferentes comandos de monitorización, se comparan los 3 algoritmos concluyendo cual resulta ser más eficiente.
Se desarrollan 2 experiencias distintas con los 3 algoritmos: la monitorizacion ordenando el archivo de 20mb desde un disco interno a un disco externo, y la monitorización ordenando el archivo en el mismo disco interno.
A continuación se presentan los videos correspondientes a cada experiencia:
I) Ordenamiento desde un Disco Interno a un Disco Externo.
A.- Bublesort.
B.- Quicksort.
C.- Mergesort.
II) Ordenamiento en el mismo Disco Interno.
Resultados de la Monitorización.
I) Ordenamiento desde un Disco Interno a un Disco Externo.
A.- Bublesort.
Tiempo de ejecución usando time:
16 horas y más (no se conocio el limite durante esta experiencia).
Estadisticas de tiempo usando gprof:
Por la larga duración del programa no fue posible generarlas.
Graficas hechas con gnuplot utilizando los datos recopilados con iostat y vmstat:
Lectura y Escritura en Kb/s en el disco interno durante el tiempo que duro la experiencia.
Lectura y Escritura en Kb/s en el disco externo durante el tiempo que duro la experiencia.
Uso de CPU durante el tiempo que duro la experiencia.
Graficas hechas con gnuplot utilizando los datos recopilados con iostat y vmstat:
Lectura y Escritura en Kb/s en el disco interno durante el tiempo que duro la experiencia.
Lectura y Escritura en Kb/s en el disco externo durante el tiempo que duro la experiencia.
Uso de CPU durante el tiempo que duro la experiencia.
C.- Mergesort.
Tiempo de ejecución usando time:
real 0m58.518s user 0m12.069s sys 0m46.267s
Estadisticas de tiempo usando gprof:
Flat profile:
Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 42.51 0.62 0.62 5999999 0.00 0.00 mezclar 28.80 1.04 0.42 6000001 0.00 0.00 escribirUnNumero 21.25 1.35 0.31 1 0.31 0.93 mezcla 7.54 1.46 0.11 1 0.11 1.46 ordenarArchivo
Graficas hechas con gnuplot utilizando los datos recopilados con iostat y vmstat:
Lectura y Escritura en Kb/s en el disco interno durante el tiempo que duro la experiencia.
Lectura y Escritura en Kb/s en el disco externo durante el tiempo que duro la experiencia.
Uso de CPU durante el tiempo que duro la experiencia.
Conclusiones.
Considerando que el algoritmo de ordenamiento BubleSort es de orden n^2, el ordenamiento de un archivo que cuenta con alrededor de 6 millones de datos, se podria decir que su tiempo de ejecución podria extenderse por años.
Comparando el uso de la CPU de Bublesort con los otros 2 algoritmos, se puede ver claramente que fue más extenso el uso del BubleSort que el QuickSort y el MergeSort.
En cuanto a la lectura y escritura ejecutando el programa con BubleSort de un disco interno a un disco externo o en el mismo disco se puede ver que: cuando se lleva a cabo el ordenamiento, se puede observar en las graficas correspondiente, que la lectura y escritura de datos se hace mayor cantidad de veces para el caso del disco externo.
En cuanto a los algoritmos QuickSort y MergeSort, en tiempo de ejecución son similares, pero con algunas diferencias en la lectura y escritura de datos, ya que su implementación es distinta, pero a lo que se refiere a procesos del sistema, sus tiempos son parecidos. El comportamiento con la CPU y dispositivos I/O son similares.
Viendo las graficas, se puede ver que para el caso del disco externo hubo mayor proceso de lectura y escritura que para el caso del mismo disco interno.