Dhrystone
From Wikipedia, the free encyclopedia
El Dhrystone es un pequeño benchmark sintético que pretende ser representativo de programación entera de sistemas. Está basado en estadísticas publicadas sobre uso de particularidades de los lenguajes de programación, sistemas operativos, compiladores, editores, etc.
La publicación original de este benchmark se puede ver en CACM 27,10 (Oct. 1984), 1013-1030, por Reinkol P. Weicker de Siemens-Nixdorf Information System. Originalmente fue publicado en ADA, aunque hoy en día la mayoría utiliza la versión en C distribuida por Rick Richardson. La versión 2 fue publicada en SIGPLAN Notices 23,8 (Ago. 1988), 49-62, junto con las reglas de medición y en tres lenguajes: Ada, C y Pascal. Meses después salió la última versión: la 2.1. La versión 1 ya no se recomienda debido a que los compiladores actuales pueden eliminar mucho del "código muerto" del benchmark (sin embargo, los números MIPS citados son frecuentemente extraídos de la versión 1). Su nombre representa un juego de palabras con su antecesor: el Whetstone ("wet" = mojado, "dry" = seco), su antecesor en el sentido de que fue también una mezcla representativa basándose en programas existentes, pero los datos eran de programas científicos en lugar de comerciales. Uno de sus usos actuales es como de otros benchmarks; sin embargo, su escasa representatividad y su alta sensibilidad frente a compiladores y optimizaciones desalientan su uso. Es un benchmark sintético y comercial. Resultado: Intenta medir la velocidad del sistema en cuanto a rendimiento no numérico, expresando los resultados en DPS (instrucciones Dhrystones Por Segundo). El rendimiento de Dhyrstone se calcula a partir de la siguiente fórmula: Iteraciones Dhrystone por segundo = reloj del procesador * número de pasadas / tiempo de ejecución. Para que el resultado sea válido el código Dhrystone debe ser ejecutado al menos por dos segundos.
Características
Contiene muchas instrucciones simples, llamadas a procedimiento y condicionales, y pocas de coma flotante y bucles. No realiza llamadas al sistema. Usa pocas variables globales y ejecuta operaciones con punteros. Está compuesto por 12 procedimientos incluidos en un bucle de medida con 94 sentencias. No se puede variar su tamaño. Está compuesto por un 53% de instrucciones de asignación, 32% de instrucciones de control y un 15% de llamadas a procedimiento. Dhrystone es compacto (no más de 1,5 KB), ampliamente disponible en el dominio público, y sencillo de ejecutar. Por ser tan pequeño el Dhrystone entra completamente en la caché interna, de esta manera no mide el resto del sistema pero presenta la ventaja de que mide solamente la capacidad del procesador para trabajar con enteros. El Dhrystone compara el rendimiento del procesador usando una máquina de referencia: la VAX 11/780 es la máquina que corre a 1 MIPS (logra 1757 Dhrystones por segundo). No se puede parametrizar, a diferencia del Whetstone donde los distintos tipos de instrucción están en bucles, aquí los mismos no existen por lo que no se puede cambiar la importancia de cada tipo de instrucción alterando la cantidad de veces que se itera cada bucle.