[pyar] Análisis sobre charla "Python más rápido que C"

Claudio Freire klaussfreire en gmail.com
Mar Abr 29 19:55:43 ART 2014


2014-04-29 19:34 GMT-03:00 Fernando Pelliccioni <fpelliccioni en gmail.com>:
> Cambié la forma de medición para poder hacerlo de forma portable en las 3
> plataformas más populares: OSX, Windows y Linux.
> Además la cambié porque sospecho que ptrace pueda estar interfiriendo con
> las pruebas. No tengo un conocimiento profundo de ptrace, así que prefiero
> medir usando tiempos.

También cambiaste considerablemente lo que se mide.

ptrace es una facilidad del sistema operativo (linux), en este caso,
mide la cantidad de instrucciones ejecutadas.

Es cierto que no es una medida exacta de tiempo (hay instrucciones e
instrucciones), pero es lo que se puede hacer desde user-space. Hacer
algo mejor requiere mucho más trabajo, involucrando profilers
propiamente dichos que utilizan ayuda del kernel (para usar los
performance-counters del CPU).

El código tuyo tiene muchas falencias, la mayor de las cuales, es que
no compensa el overhead de medición. Mejor sería, en vez de
reimplementar timeit, usarlo (el módulo timeit).


2014-04-29 19:34 GMT-03:00 Fernando Pelliccioni <fpelliccioni en gmail.com>:
>
> Porfa, chequeen el codigo Python y díganme si se les parece correcto, tanto
> el algoritmo como la forma de medición.
> A los que tengan experiencia en otras implementaciones de Python, (como la
> que menciona Claudio, CPython), por favor, me podrían dar una mano con
> detalles de como instalar y compilar correctamente en esas implementaciones.


CPython es la implementación de referencia de python (o sea: lo que
bajás de python.org)

Fijate que si querés medir lo que tarda en ejecutar una multiplicación
C++ (no C, lo que veo ahí no es C), no podés ni compilar con -O3 ni
marcar las funciones como inline y las variables como const. Porque si
lo hacés, el compilador va a ejecutar la multiplicación en tiempo de
compilación, y lo que vas a medir es lo que tarda en imprimir un
string prefabricado (que imagino no es la idea).


More information about the pyar mailing list