Me gustaría mejorar el rendimiento de un script de Python y he estado usando cProfile para generar un informe de rendimiento: python -m cProfile -o chrX.prof ./bgchr.py …args… Abrí este archivo chrX.prof con pstats de Python e pstats las estadísticas: Python 2.7 (r27:82500, Oct 5 2010, 00:24:22) [GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2 […]
Estoy tratando de optimizar algunos códigos con Cython, pero cProfile no proporciona suficiente información. Para hacer un buen trabajo en la creación de perfiles, ¿debo crear muchas subrutinas func2, func3, …, func40? Tenga en cuenta a continuación que tengo una función func1 en mycython.pyx , pero tiene muchos bucles y manipulaciones internas. Pero cProfile no […]
Como respuesta a mi pregunta Encuentra la posición basada en 1 en la que dos listas son las mismas , obtuve la sugerencia de usar las herramientas de la biblioteca C para acelerar las cosas. Para verificar codifiqué la siguiente prueba usando cProfile: from itertools import takewhile, izip def match_iter(self, other): return sum(1 for x […]
Me gustaría perfilar un método de una función en Python, usando cProfile. Intenté lo siguiente: import cProfile as profile # Inside the class method… profile.run(“self.myMethod()”, “output_file”) Pero no funciona. ¿Cómo puedo llamar a un método self con “run”?
Estoy usando cProfile en un módulo llamado bot4CA.py, así que en la consola escribo: python -m cProfile -o thing.txt bot4CA.py Después de que el módulo se ejecuta y sale, crea un archivo llamado thing.txt y cuando lo abro, hay algo de información allí, y el rest es una mezcla de caracteres en lugar de un […]
He escrito un pequeño script en Python que utiliza multiprocessing (consulte https://stackoverflow.com/a/41875711/1878788 ). Funciona cuando lo pruebo: $ ./forkiter.py 0 1 2 3 4 sum of x+1: 15 sum of 2*x: 20 sum of x*x: 30 Pero cuando trato de cProfile perfil con cProfile , obtengo lo siguiente: $ python3.6 -m cProfile -o forkiter.prof ./forkiter.py […]
He estado probando un sistema de caché de mi creación. Su propósito es acelerar una aplicación web Django. Almacena todo en la memoria. Según cProfile, la mayor parte del tiempo en mis pruebas se pasa dentro de QuerySet._clone (), lo que resulta terriblemente ineficiente (en realidad no es tan extraño dada la implementación). Tenía grandes […]
He identificado algunas pruebas pytest de larga duración con py.test –durations=10 Me gustaría instrumentar una de esas pruebas ahora con algo como line_profiler o cprofile. Realmente quiero obtener los datos del perfil de la propia prueba, ya que la configuración o el desassembly de pytest podrían ser parte de lo que es lento. Sin embargo, […]
Estoy luchando para descubrir cómo perfilar un script de python multiproceso simple import multiprocessing import cProfile import time def worker(num): time.sleep(3) print ‘Worker:’, num if __name__ == ‘__main__’: for i in range(5): p = multiprocessing.Process(target=worker, args=(i,)) cProfile.run(‘p.start()’, ‘prof%d.prof’ %i) Estoy iniciando 5 procesos y, por lo tanto, cProfile genera 5 archivos diferentes. Dentro de cada […]
Estoy usando cProfile para perfilar mi progtwig Python. Sobre la base de esta charla , tenía la impresión de que KCacheGrind podría analizar y mostrar la salida de cProfile. Sin embargo, cuando voy a importar el archivo, KCacheGrind solo muestra un error de ‘Formato de archivo desconocido’ en la barra de estado y no muestra […]