vprof - Ich habe versucht, den Profiler für Python zu verwenden

Da vprof auf Twitter veröffentlicht wurde, werde ich aufschreiben, wie man es benutzt. vprofs README.md ist besser geschrieben, daher ist das Lesen möglicherweise schneller.

Was ist vprof

vprof ist ein Python-Paket, das eine interaktive Visualisierung von Profilinformationen bietet.

Installation

https://pypi.python.org/pypi/vprof

Die aktuellste Version von pypi ist 0.3. (Stand 21. Mai 2016) Vorerst mit pip installieren.

$ pip install vprof

Wenn Sie sich [README.md] ansehen (https://raw.githubusercontent.com/nvdv/vprof/master/README.md)

## Prerequisites
The required dependencies to build ```vprof``` from source code:
 * Python 2.7, Python 3.4 or Python 3.5
 * ```pip```
 * ```npm``` >= 3.3.12

Es scheint, dass Knoten auch benötigt wird, weil es heißt.

Bench-Skript

Dieses Mal habe ich versucht, dieses Skript zu bewerten.

#! /usr/bin/env python
import sys
import time


def calc():
    num = 0
    for ii in range(100):
        ii += 1
        time.sleep(0.01)
    return num


def alloc_large_memory():
    txt = 'a' * 1024 * 1024 * 100  # 100MB
    return txt


def main():
    calc()
    alloc_large_memory()

if __name__ == '__main__':
    sys.exit(main())

Versuche zu rennen

$ vsof -cmh "./benchmark.py"

Geben Sie das Anzeigeziel mit der Option -n an.

Möglichkeit Ziel anzeigen Einzelheiten
c framechart Rahmendiagramm
m memory stats Speichernutzung
h code heatmap Zeile für Zeile Heatmap

framechart

Die Ausführungszeit und die Anzahl der Anrufe werden visualisiert.

スクリーンショット 2016-05-21 15.32.02.png

Um ehrlich zu sein, ist die von cprofile angezeigte Liste möglicherweise einfacher zu verarbeiten und anzuzeigen. .. ..

memory stats

Die Speichernutzung wird visualisiert.

スクリーンショット 2016-05-21 15.32.11.png

Es ist ziemlich gut, weil Sie den Dateinamen und die Anzahl der Zeilen sehen können, wenn Sie die Speichernutzung messen.

code heatmap

Es ist eine Heatmap.

スクリーンショット 2016-05-21 15.32.28.png

Es scheint, dass die Orte mit vielen Ausführungen in dunklen Farben angezeigt werden. Das sieht gut aus. Ich wusste nicht, wie ich die Dateien anzeigen sollte, die ich importierte ...

Recommended Posts

vprof - Ich habe versucht, den Profiler für Python zu verwenden
Verschiedene Hinweise zur Verwendung von Python für Projekte
Ich habe versucht, Kwant zu verwenden, ein Python-Modul für die Quantentransportberechnung
[Python] Ich habe versucht, den Funktionsnamen durch den Funktionsnamen zu ersetzen
Ich habe zum ersten Mal versucht, Python zu programmieren.
Ich habe versucht, das Datetime-Modul von Python zu verwenden
Ich habe Python zum ersten Mal auf dem Mac ausprobiert.
Ich habe Python zum ersten Mal mit Heroku ausprobiert
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe versucht, die checkio-API zu verwenden
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
[Für Anfänger] Ich habe versucht, die Tensorflow-Objekterkennungs-API zu verwenden
Ich habe zum ersten Mal Tensorflow ausprobiert
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Python: Ich habe das Problem des Handlungsreisenden ausprobiert
Ich habe das Python Tornado Testing Framework ausprobiert
Ich habe versucht, die BigQuery-Speicher-API zu verwenden
Ich habe versucht, parametrisiert zu verwenden
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe versucht, Argparse zu verwenden
Ich habe in der Bibliothek nach der Verwendung der Gracenote-API gesucht
Ich habe versucht, Mimesis zu verwenden
Ich habe versucht, anytree zu verwenden
Ich habe versucht, Web-Scraping mit Python und Selen
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe versucht, aiomysql zu verwenden
Ich habe versucht, Objekte mit Python und OpenCV zu erkennen
Ich habe versucht, Summpy zu verwenden
Ich habe Python> autopep8 ausprobiert
Ich habe versucht, "Birthday Paradox" mit Python zu simulieren
Ich habe die Methode der kleinsten Quadrate in Python ausprobiert
Ich habe versucht, PyCaret mit der schnellsten Geschwindigkeit zu verwenden
Ich habe versucht, Coturn zu verwenden
Ich habe versucht, Pipenv zu verwenden
Ich habe versucht, die Google Cloud Vision-API zu verwenden
Ich habe versucht, Matplotlib zu verwenden
Ich habe versucht, "Anvil" zu verwenden.
Ich habe versucht, Hubot zu verwenden
Ich habe versucht, Mecab mit Python2.7, Ruby2.3, PHP7 zu verwenden
Ich habe versucht, ESPCN zu verwenden
Ich habe versucht, openpyxl zu verwenden
[Python] Ich habe nach dem längsten Pokemon Shiritori gesucht
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Ich habe versucht, Ipython zu verwenden
Ich habe versucht, PyCaret zu verwenden
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Ich habe versucht, Cron zu verwenden
Ich habe Mind Meld zum ersten Mal ausprobiert
Ich habe versucht, ngrok zu verwenden
Ich habe versucht, face_recognition zu verwenden
Ich habe versucht, Jupyter zu verwenden
[Textklassifizierung] Ich habe versucht, den Aufmerksamkeitsmechanismus für Faltungs-Neuronale Netze zu verwenden.
Ich habe versucht, Firebase für Djangos Cache-Server zu verwenden