[pyar] abc.py:__instancecheck__ consumiendo CPU

Roberto Alsina ralsina en netmanagers.com.ar
Mie Abr 23 15:18:28 ART 2014


On 23/04/14 15:13, Andres Riancho wrote:
> Roberto,
>
> 2014-04-23 14:36 GMT-03:00 Roberto Alsina <ralsina en netmanagers.com.ar>:
>> On 23/04/14 14:28, Andres Riancho wrote:
>>> Lista,
>>>
>>>       Siguiendo con mis emails sobre profiling y optimizaciones les
>>> quería consultar sobre algo raro que estoy viendo [0]. Basicamente lo
>>> que ocurre es:
>>>
>>>           * Corro w3af con CPU profiling
>>>           * Cargo el profiling en runsnake
>>>           * Veo que un porcentaje considerable del tiempo de CPU esta
>>> siendo utilizado en __instancecheck__ (ver imagen).
>>>
>>>       Busco en mi codigo y no estoy utilizando este metodo magico. Lo
>>> que si utilizo bastante son llamadas a "isinstance" para asegurarme
>>> que los tipos de datos en algunos lugares son los correctos.
>>>
>>>       Según runsnake tengo 1.2M de llamadas a __instancecheck__ , cada
>>> una corriendo en 0.00003segundos. El total de tiempo que se ocupa en
>>> esta funcion es de 37seg (aprox).
>>>
>>>       Alguien se topo con esto antes? Puede ser que no este relacionado
>>> con "isinstance" y tenga algo que ver con este otro bug en python [1]?
>>>
>>> [0] http://i.imgur.com/lfiL6X2.png
>>> [1] http://bugs.python.org/issue1438
>>>
>>> Saludos,
>> Si tenes el dato de profiling, podes ver quien llama a __instancecheck__
>> usando pstats:
>>
>> http://stefaanlippens.net/python_profiling_with_pstats_interactive_mode
> Gracias, eso no se me habia ocurrido (aunque era lo obvio a probar!)
> lo que obtuve fue [1]. En otras palabras, al parecer yappi [0], el
> profiler que estoy usando, no sabe nada sobre los callers de
> __instancecheck__ . Notar que aunque hay millones de llamadas a la
> funcion, no hay callers :S
>
> [1] https://gist.github.com/andresriancho/11226670
> [0] https://pypi.python.org/pypi/yappi/
>

Sospecho que eso es porque estas limitando a abc.py y seguramente a 
__instancecheck__ lo llama alguna otra cosa.


More information about the pyar mailing list