[pyar] kernel mata python

Fernando Pelliccioni fpelliccioni en gmail.com
Jue Oct 13 17:36:41 ART 2016


2016-10-12 19:51 GMT-03:00 Claudio Freire <klaussfreire en gmail.com>:

> 2016-10-12 12:03 GMT-03:00 Javier Marcon <javiermarcon en gmail.com>:
> >> Por otro lado, ¿cómo estás trabajando el CSV? Si lo leés y laburás
> >> linea por linea no deberías tener problema de memoria... ¿Se puede ver
> >> qué estás haciendo?
> >>
> >> Slds.
> >>
> > No puedo poner el código por el contrato de confidencialidad, pero lo
> > que hace es leer el csv y arma varias listas, una lista que por cada
> > fila del csv tiene una lista de los valores de la fila, una lista con
> > los encabezados, una lista de keys de fila, etc.
>
> Sin código va a ser difícil ayudarte, pero si te ponés a pensar, con
> un input de 200MB tendrías que estar inflando muchísimo en memoria los
> datos para estar teniendo problemas con el OOM - eso, o estás
> laburando en una máquina demasiado chica.
>
> Si estás laburando en python 2, recordá que los strings unicode pesan
> 4x lo normal debido al encoding interno. Podés ahorrar mucha memoria
> guardando byte strings en vez de unicode (ej: x.encode("utf8") al
> ponerlo en la lista, y x.decode("utf8") al sacarlo de la lista). Es un
> laburo, pero te puede mejorar la eficiencia notablemente.
>
> En python 3, desde cierta versión (creo que 3.4), ésto es automático.
>

¿Por qué 4x?
El encoding interno de los strings de CPython 2.x es el mismo que el de las
versiones 3.0, 3.1 y 3.2.
Recién en 3.3 lo cambian a un encoding dinámico (
https://www.python.org/dev/peps/pep-0393/).
Tanto en CPython 2.x como en CPython < 3.3 el encoding es UCS-2 o UCS-4
(dependiendo de como se compile el intérprete).


>
> Deberías repensar la estructura que guardás en memoria porque
> claramente es ineficiente. Si trabajás con números, considerá usar
> numpy.
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20161013/1dbe3255/attachment-0001.html>


Más información sobre la lista de distribución pyar