<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Hola,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span lang=ES-EC>You so el profiles de PyCharm y obtengo una tabla con todos los detalles y un gráfico de llamadas. Adjunto los pantallazos:<o:p></o:p></span></p><p class=MsoNormal><span lang=ES-EC><o:p> </o:p></span></p><p class=MsoNormal><span lang=ES-EC><img width=754 height=444 style='width:7.8583in;height:4.625in' id="Picture_x0020_1" src="cid:image003.jpg@01D6E9D1.0DD11050"></span><span lang=ES-EC><o:p></o:p></span></p><p class=MsoNormal><span lang=ES-EC><o:p> </o:p></span></p><p class=MsoNormal><span lang=ES-EC><img width=750 height=609 style='width:7.8083in;height:6.3416in' id="Picture_x0020_2" src="cid:image004.jpg@01D6E9D1.0DD11050"></span><span lang=ES-EC><o:p></o:p></span></p><p class=MsoNormal><span lang=ES-EC><o:p> </o:p></span></p><p class=MsoNormal><span lang=ES-EC>Un saludo,<o:p></o:p></span></p><p class=MsoNormal><span lang=ES-EC><o:p> </o:p></span></p><p class=MsoNormal><span lang=ES-EC>Plutarco<o:p></o:p></span></p><p class=MsoNormal><span lang=ES-EC><o:p> </o:p></span></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=ES-EC>From:</span></b><span lang=ES-EC> Madrid <</span><a href="mailto:madrid-bounces@lists.es.python.org"><span lang=ES-EC>madrid-bounces@lists.es.python.org</span></a><span lang=ES-EC>> <b>On Behalf Of </b>lasizoillo<br><b>Sent:</b> miércoles, 13 de enero de 2021 15:01<br><b>To:</b> Python Madrid <madrid@lists.es.python.org><br><b>Subject:</b> Re: [Py-MAD] codespeed o similar<o:p></o:p></span></p></div><p class=MsoNormal><span lang=ES-EC><o:p> </o:p></span></p><div><div><p class=MsoNormal>Buenas,<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Así como profiler para detectar cuellos de botella <a href="https://pyroscope.io/">https://pyroscope.io/</a> puede estar bien.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>El elastic APM me encanta también, pero entiendo que tu problema con la app de escritorio sea definir qué es una transacción para poder registrarla.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Con respecto a los tests para comparar con versiones anteriores <a href="https://pypi.org/project/pytest-benchmark/">https://pypi.org/project/pytest-benchmark/</a><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>No se si te servirán o no, pero es lo que yo conozco.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Un saludo,<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Javi<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>El mié, 13 ene 2021 a las 14:36, Pablo Conesa (<<a href="mailto:pconesa@cnb.csic.es">pconesa@cnb.csic.es</a>>) escribió:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><p>Hola, aprovecho la actividad de la lista reciente para ver si alguien conoce algo parecido a <a href="https://github.com/tobami/codespeed" target="_blank">codespeed</a><o:p></o:p></p><p><o:p> </o:p></p><p>Os resumo mi necesidad (que creo que es bastante generica):<o:p></o:p></p><p>Tenemos una aplicacion de escritorio (Tkinter) con cierta complejidad (vaya, no son un par de scripts!)<o:p></o:p></p><p>Es lenta en algunos "procesos" y queremos:<o:p></o:p></p><p> Entender que esta pasando e identificar "bottlenecks" (hasta ahora usando cProfile o yappi creo que va bien para esto).<o:p></o:p></p><p> Pero por otro lado hay que <b>medir tiempos</b>.<o:p></o:p></p><p>Y esto a dia de hoy, lo estabamos haciendo de manera manual usando Timer y similares y mandando los tiempos a un log, y de ahi a un "excel", tabla dinámica etc para plotear.<o:p></o:p></p><p>El caso es que el proceso de "optimización de código" es muy exploratorio y requiere siempre de "datos objetivos" para medir si los cambios que vas haciendo realmente mejoran o no.<o:p></o:p></p><p>Por esto estaba mirando una manera de:<o:p></o:p></p><p>1.- Automatizar el analisis del rendimiento: combinar test + CI ?<o:p></o:p></p><p>2.- Almacenar de alguna manera los resultados de medir el performance y compararlos con una baseline ...(algo asi como codespeed me cuadra).<o:p></o:p></p><p><o:p> </o:p></p><p>Hasta aqui me cuadra codeSpeed. He mirado cosas de (APM) pero no me cuadran para una desktop app.<o:p></o:p></p><p>Conoceis alguna alternativa a codespeed? Alguien hace esto ya de alguna manera interesante?<o:p></o:p></p><p><o:p> </o:p></p><p>Un saludo, perdonad la chapita!<o:p></o:p></p><p><o:p> </o:p></p><p><o:p> </o:p></p><div><p class=MsoNormal>-- <br>Pablo Conesa - <strong><span style='font-family:"Calibri",sans-serif'>Madrid <a href="http://scipion.i2pc.es" target="_blank">Scipion</a> team</span></strong><o:p></o:p></p></div></div><p class=MsoNormal>_______________________________________________<br>Asociación Python España: <a href="http://www.es.python.org/" target="_blank">http://www.es.python.org/</a><br>Python Madrid: <a href="http://www.python-madrid.es/" target="_blank">http://www.python-madrid.es/</a><br>Madrid mailing list<br><a href="mailto:Madrid@lists.es.python.org" target="_blank">Madrid@lists.es.python.org</a><br><a href="https://lists.es.python.org/listinfo/madrid" target="_blank">https://lists.es.python.org/listinfo/madrid</a><o:p></o:p></p></blockquote></div></div></body></html>