Kcachegrind funge da meravigliosa utilità per rappresentare visivamente l'hotspot sul livello di linea di origine durante il profiling del codice. L'ho trovato abbastanza utile quando ottimizzavo la mia base di codice C++. Per il mio ultimo progetto python ho iniziato a utilizzare Kcachegrind per elaborare l'output da profilestats. Kcachegrind è una utility solo per Linux ma sono disponibili varie porte non ufficiali e una che sto utilizzando è qcachegrind. Generalmente funziona in larga misura e è sufficiente per la maggior parte dei problemi, tranne per il fatto che sto facendo fatica a far funzionare l'annotazione di origine.Come eseguire l'annotazione di python quando si utilizza qcachegrind per elaborare l'output di profilestats
Nella scheda Origine mi viene salutato con la fonte a conoscenza mancante messaggio
There is no source available for the following function:
'main C:\Projects\module\src\source.py:397'
This is because no debug information is present
Recompile source and redo the profile run.
The function is located in the ELF Object:
'(unknown)'
Utilizzando l'opzione
Settings -> Configure -> Source Annotation
e aggiungendo la directory base di origine non era utile.
Ho la sensazione che l'utilità voglia un oggetto ELF che non è rilevante per Python. Qualsiasi aiuto in questo senso sarebbe utile.
informazioni rilevanti:
- Python 2.7
- profilestats (2,0)
- QCachegrind 0.7.4
- di Windows 2012R2
Sembra come 'profilestats' non possono essere compresi i dati rilevanti nella sua produzione. Hai provato a salvare l'output di profilazione nel "formato Python" e convertirlo usando ['pyprof2calltree'] (https://pypi.python.org/pypi/pyprof2calltree/)? – taleinat