¿Qué es un benchmack y cómo puedo hacer un benchmarck de mi aplicación?

El benchmark es una técnica utilizada para medir el rendimiento de un sistema o componente del mismo, frecuentemente en comparación con el que se refiere específicamente a la acción de ejecutar un benchmark. La palabra benchmark es un anglicismo traducible al español como comparativa. Si bien también puede encontrarse esta palabra haciendo referencia al significado original en la lengua anglosajona, es en el campo informático donde su uso está más ampliamente extendido.

Formalmente puede entenderse que un benchmark es el resultado de la ejecución de un programa informático o un conjunto de programas en una máquina, con el objetivo de estimar el rendimiento de un elemento concreto, y poder comparar los resultados con máquinas similares. En términos de ordenadores, un benchmark podría ser realizado en cualquiera de sus componentes, ya sea CPU, RAM, tarjeta gráfica, etc. También puede ser dirigido específicamente a una función dentro de un componente, por ejemplo, la unidad de punto flotante de la CPU, o incluso a otros programas.

La tarea de ejecutar un benchmark originalmente se reducía a estimar el tiempo de proceso que lleva la ejecución de un programa (medida por lo general en miles o millones de operaciones por segundo). Con el tiempo, la mejora en los compiladores y la gran variedad de arquitecturas y situaciones existentes convirtieron a esta técnica en toda una especialidad. La elección de las condiciones bajo la cual dos sistemas distintos pueden compararse entre sí es especialmente ardua, y la publicación de los resultados suele ser objeto de candentes debates cuando éstos se abren a la comunidad.

Para hacer una benchmark de su aplicación puede aplicar la siguiente técnica: crear un script que ejecute la misma bajo diversas condiciones, mediante la elección adecuada de los datos de entrada. Realice ejecuciones que hagan uso intensivo de la memoria, la lectura/escritura del disco o la CPU. Prepare su aplicación para que reporte estadísticas del uso de los recursos. Tenga en cuenta que todos los casos no son posibles para todas las aplicaciones, escoja la variante posible o la que más le interese comprobar. Una vez que tenga a punto el script, puede ejecutar el mismo sobre distintos equipamientos, y comparando las estadísticas tendrá una idea de sobre cuál su aplicación se ejecuta en mejores condiciones.