Reenvío el correo de Salva, porque me dicen que no les llega a algunos listeros
-------- Mensaje reenviado --------
----- Original Message -----
From: Joaquin Ferrero <[email protected]>
To: [email protected]
Cc:
Sent: Wednesday, December 3, 2014 10:03 PM
Subject: Re: [Madrid-pm] Nueva herramienta para procesar la ingente cantidad de
textos de la web
El 03/12/14 a las 09:12, Roberto Henriquez escribió:
On 12/03/2014 06:25 AM, Alex Muntada wrote:
Para más inri está escrito en python, casi parece una broma...
Lo de que sea más rápido en java parece ser por el modo de ejecución de
hadoop para lenguajes no java.
Eso es lo que yo entiendo, según el readme: «Even though Hadoop Streaming
is a very useful tool, important degradations in the performance were detected
using Hadoop Streaming with respect to Hadoop Java codes.»
Parece que el problema viene de algún overhead de Hadoop Streaming.
saludos!
Estoy sospechando que el tema puede estar en el tiempo que Perl
"pierde" en el proceso de compilación de los programas, antes de
ejecutarlos, cosa que los de Java no tienen (se compilan una vez).
O algo peor... que estén usando un Perl v5.8.8 en Red Hat 2008-2010... entonces
sí que queda claro: el intérprete de Perl tenía un bug en la reserva de memoria,
que lo hacía mucho más lento de lo normal.
Es que, otra razón, no se me ocurre. Y eso que he visto cantidad de ejemplos en
los que la ejecución de Perl es más rápida y con muchos menos recursos que Java,
haciendo la misma tarea.
Perl es un lenguaje interpretado, por un interprete diseñado hace mas de 20
años y que en esos 20 años la mayoría de los cambios que le han echo han sido
chapuzas que no se adaptaban bien al diseño original (tie, prototipos, threads,
overload, etc.) y que aunque no han tenido un gran impacto en el rendimiento si
que han sido bloqueantes a la hora de mejorarlo.
Por el otro lado, cuando apareció Java hace también casi 20 años, el runtime,
la JVM, era una porquería, pero en este tiempo lo han reescrito varias veces,
aplicado todas las técnicas de optimización conocidas. El HotSpot actual que
viene a ser un JIT que optimiza de forma dinámica los puntos calientes, es una
pasada. Lo mismo pasa con los algoritmos de gestión de memoria, de lo mejorcito
que hay (¡y en Perl seguimos contando referencias!). Hoy en día, el rendimiento
en la JVM es similar al de programas en C o C++. Solo, en código de muy bajo
nivel puede quedarse Java un poco atrás.
La cuestión es que si hubiese una definición del lenguaje o este fuese más
simple, acabarían apareciendo nuevas implementaciones para otras tecnologías
como ha pasado con Python (PyPy, IronPython, Jython) o con Ruby... pero como el
lenguaje es lo que es, y la definición del lenguaje es la propia implementación
en C del mismo, nadie ha tenido las pelotas o el conocimiento para hacerlo.
Perl de todas formas aun tiene sus puntos fuertes, al proveer al usuario de estructuras
de datos y algoritmos (por ejemplo el motor de expresiones regulares) de alto nivel
implementados en C muy optimizado, se evitan "cagadas" que en otros lenguajes
de más bajo nivel programadores mediocres pueden cometer de forma más o menos frecuente.
Por ejemplo, es fácil que una operación simple como push(@a) acabe teniendo un coste O(N)
o incluso O(N^2) en vez de O(1) que es el óptimo y el que tiene en Perl.
Perl solia salir bien parado en cuestiones de rendimiento cuando se comparaba
con otros lenguajes de scripting o dinamicos, hace tiempo que no investigo ese
tema, pero de todas formas es una disculpa burda, Python esta diseñado para ser
lento... y mirad como van ha día de hoy otros lenguajes en los que ha habido un
esfuerzo por acelerarlos, como por ejemplo JavaScript (con técnicas inventadas
la mayoría hace varias décadas, cuando el state-of-the-art era Smalltalk (como
hemos atrasado!!!))
Pero recordad que lo bueno que tiene Perl es que es rápido a la hora de
desarrollar!!
Fin del rant, os tengo que dejar que me reclama un demonio de 2 años que corre
por mi casa...
_______________________________________________
Madrid-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/madrid-pm
_______________________________________________
Madrid-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/madrid-pm