Comparativa entre lenguajes III

Vamos a ver ahora como se comportan los diferentes lenguajes respecto a operaciones de entrada/salida básicas. Aquí empieza a ser más difícil hacer códigos que sean análogos en cada lenguaje, es decir que hagan exactamente lo mismo y sin buscar "trucos".

Hacemos lo siguiente.
Partimos de un fichero de texto de 260k llamado dat.x
Lo copiamos en modo binario a través de un buffer de 2k para generar el archivo de salida out.x
Los comparamos carácter a carácter y contando los caracteres que hay.
Finalmente volcamos dat.x y luego out.x a pantalla.
Mostramos dos simulaciones:

Tiempos

C: real 0m11.837s
0m11.780s

user 0m0.016s
0m0.004s

sys 0m1.136s
0m1.228s

Ruby: real 0m12.036s
0m11.630s

user 0m0.320s
0m1.816s

sys 0m2.468s
0m0.948s

Perl: real 0m12.134s
0m12.165s

user 0m1.348s
0m1.376s

sys 0m0.856s
0m1.164s

El número se caracteres es igual en todos casos, 262144, menos en C que tenemos 262145 ya que nos aparece un carácter mas, EOF. Todas las lineas son 123456789abcdef, 15 caracteres + EOL por 16385 lineas.

No hay comentarios: