[pyar] Procesando muchos datos (cPython vs Stackless) and (32bits vs 64bits)

Julian Agustin Cardonnet jcardonnet en gmail.com
Lun Abr 16 13:52:05 ART 2012


El día 16 de abril de 2012 13:24, Claudio Freire
<klaussfreire en gmail.com> escribió:
> 2012/4/16 Julian Agustin Cardonnet <jcardonnet en gmail.com>:
>> Ahora me falta ver si con cPython de 32 bits
>> me va a alcanzar o si sera necesario recurrir a la de 64.
>
> Bueno, en ese sentido, es bueno entender que 64 bits no es sólo el
> tamaño de los ints.
>
> En Python, todo son punteros. Así que punteros de 64 bits ocupan el
> doble que punteros de 32 bits. Python de 64 bits, por ende, usa el
> doble de memoria en almacenar referencias. Los strings siguen ocupando
> lo mismo, pero casi todo ocupa el doble.
>
> Así que Python de 32 bits va a ser más eficiente en el uso de memoria.
>
> PERO, sucede que 64 bits es, como dije, más que el tamaño de los ints.
> Las arquitecturas de 64 bits tienen más registros, tienen un set de
> instrucciones mejorado... en general, 64 bits es más rápido, en
> especial en Python.
>
> Es un tradeoff. Si manipulás texto, es posible que el uso de memoria
> inflado de 64 bits no te pegue tan fuerte (porque tus bytes son más
> ascii que punteros), y que garpe usar una arquitectura de 64 bits. Es
> cuestión de probar. El código python puro va a andar perfectamente
> bien en ambas arquitecturas.

Voy correr algunas pruebas para analizar el rendimiento real de las 2
alternativas en este caso concreto.
El aumento del consumo de memoria lo tengo presente, pero me parecio
que valia la pena a cambio de poder acceder a toda la memoria
disponible (creo que 64gb). Mi duda entre cual usar, fundamentalmente
venia por la posiblidad de encontrarme (usando cPython 64bits) con
incompatibilidades con alguna biblioteca que tenga partes hechas en C
(y compilarla sea una tortura) u otra limitacion o side-effect
inesperado.

Saludos
Julian



More information about the pyar mailing list