Proyecto

Aprovechando que ayer se publicó la versión 1.3 de Go, hemos querido hacer una pequeña comparativa de algunas funciones básicas del lenguaje. Utilizando las capacidades que el entorno nos ofrece hemos creado un repositorio en github con algunos benchmark sencillos; así como un script para ejecutar dichos benchmarks con cada versión del lenguaje, y generar unas gráficas con GNUPlot.

Resultados

Uno de dichos tests, es buscar un número en un array de 1000 elementos.

Como vemos, el tiempo de ejecución ha descendido desde 940 nanosegundos hasta 724 en Go 1.3, una mejora del 23%.

Además, se asigna una puntuación a cada versión del lenguaje, en función del tiempo empleado en cada benchmark. A continuación os presentamos el resumen de puntuación obtenida por cada versión de Go.

En general, vemos una mejora importante en el tiempo de ejecución de Go 1.3, pese a que su más anunciada característica es el recolector de basura preciso.

De cualquier forma, el rendimiento tenderá a estabilizarse, ya que en sus primeras versiones no era en la velocidad en lo que se centraron los desarrolladores, como podemos observar en los resultados obtenidos por go1.

Contribución

Más que hacer un análisis detallado, queremos que esto sirva como punto de inicio de un proyecto más grande en el que, entre todos, creemos una serie de benchmarks que se puedan ir actualizando periódicamente, según aparezca cada nueva versión.

Nos podéis dejar vuestras sugerencias tanto aquí en comentarios, como a través de nuestro twitter @scalia_es, o a través del github del proyecto.