[pyar] Cargar librería una única vez corriendo muchos procesos

Ezequiel Brizuela [aka EHB or qlixed] qlixed en gmail.com
Jue Ago 6 21:00:36 ART 2015


Mira, segun una rapida revision con:
pmap -XX $(pgrep ipython)
Mirando los totals en cada caso, estos son los valores que resultan despues
de levantar ipython y ejecutar import cv2:

29598:   /usr/bin/python2 /usr/bin/ipython
Size   Rss   Pss   Shared_Clean Shared_Dirty Private_Clean Private_Dirty
Referenced Anonymous AnonHugePages Swap KernelPageSize MMUPageSize Locked
====== ===== ===== ============ ============ ============= =============
========== ========= ============= ==== ============== =========== ======
627068 50468 32090        23692            0           852
25924      50468     25924             0    0           2944
2944      0 KB

Y solo ejecutando ipython sin importar nada:

31569:   /usr/bin/python2 /usr/bin/ipython
Size   Rss   Pss   Shared_Clean Shared_Dirty Private_Clean Private_Dirty
Referenced Anonymous AnonHugePages Swap KernelPageSize MMUPageSize Locked
====== ===== ===== ============ ============ ============= =============
========== ========= ============= ==== ============== =========== ======
314752 26488 19152         8184            0           336
17968      26488     17968             0    0           1004
1004      0 KB

(Sorry por el HTML, pero tenia que darle formato de ancho fijo al texto)
Size, es el tamaño total de memoria (seria sumar VSZ+RSS de una salida de
ps auxwww)
RSS, es el Resident set size, memoria fisica ram ocupada.
Shared_* te da la info que corresponde a el espacio de memoria compartido.

No son valores Exactos, pero tienen un buen valor de precision para tener
en cuenta.

Saludos.


~ QliXeD [ aka EHB ] ~


El 6 de agosto de 2015, 12:20 a. m., Matías Lang<shareman1204 en gmail.com>
escribió:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Buenas noches comunidad! Estamos laburando con opencv y tenemos la
> necesidad de procesar múltiples streams de video en realtime,
> optimizando lo mejor posible el consumo de ram y cpu.
> Actualmente tenemos un script Python que se encarga de un solo stream
> de video para que sea sencillo correrlo y detenerlo cuando sea
> necesario. Esto lo hace un script separado.
> El problema que encontramos es que por cada script que se corre se
> cargan en memoria los 45MB que usa opencv, haciendo que para correr 10
> procesos en simultáneo se ocupen 450MB (no es viable). Lo ideal sería
> que opencv se cargue una sola vez en memoria pero no encontramos
> información al respecto sobre cómo hacerlo.
> Usando multiprocessing se sigue teniendo el mismo problema pero con
> multithreading no.
> Estamos buscando sugerencias para evitar si es posible el uso de
> multithreading por cuestiones de complejidad para administrar cada
> instancia. Si no lo ven posible vendrían bien algunas sugerencias para
> migrar y no morir en el intento :D.
> Saludos!
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
>
> iQIcBAEBCAAGBQJVwtKHAAoJEOYNHtvg7gKb8NEP/0gup5C81SO1TTihUpsQNQm4
> fx8PTQRJ/n7eXA5CTvYAJJFMMGrVgTa+mPVvepTZrKf34EPqsQR6dFRUilID1TXV
> AUs2id+c8v0XmDttnKx09odw2r8WykhAHr4H4K0/0Hlnpm+l4R8a0tMn7QyP2bRc
> n9C8LG0v4Ty4ZtrX+uqJWgcvldykmweCGbDcRmfDyXmcCZDePE1J3La86Sq7bZCY
> QJabqXLm2ODOpEmOUUJayWME5j7vV169TJaX3jsg8OHzdte1lNqWXjUkA5Aaw8FO
> R5TyIdr5JUX9KJZ517GVSEEJWLeNngjIqOLY/Og0SYUVsf61fPBtXsi0Q4x6j3Q6
> KGY4ZTpwscW+tLZrMJrT6E+dOwl/HeVf2Fw75BU2yrKkf2Vsv6O/9YBZlTYFR/nd
> WSr/YVpIPRJULZm2lh/nPsC8uq1B2J+iQF6JPibKjdOE9+2/ORp4MYDp8zsoi6qR
> XM/AMTzfxd7qDeRZhFyjlMaUSDe0d0Xdj06rhXgv3xN8KLR5oSpSQeDZCn4UoHgX
> cqXhkMRlqRqLzn1gxueno9S2RT5LYQppL9hY3ZCvV9dc3jDUdZlCNgHR7d5sznIs
> TCah6KPemFDwustStmNksL+j3OkC1qKRaF720uaYNljxFF9bMTD496Lfz9WtXcdK
> GpopBWJXWzTuRWixhjS1
> =g4rQ
> -----END PGP SIGNATURE-----
> _______________________________________________
> 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/20150806/6d5030f8/attachment-0001.html>


More information about the pyar mailing list