vprof - J'ai essayé d'utiliser le profileur pour Python

Depuis que vprof est sorti sur Twitter, je vais écrire comment l'utiliser. Le [README.md] de vprof (https://raw.githubusercontent.com/nvdv/vprof/master/README.md) est mieux écrit, il peut donc être plus rapide de le lire.

Qu'est-ce que vprof

vprof est un package Python qui fournit une visualisation interactive des informations de profil.

Installation

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

La dernière version actuelle sur pypi est la 0.3. (Au 21 mai 2016) Pour le moment, installez avec pip.

$ pip install vprof

Si vous regardez 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

Il semble que ce nœud soit également nécessaire car il dit.

Script de banc

Cette fois, j'ai essayé de comparer ce script.

#! /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())

Essayez de courir

$ vsof -cmh "./benchmark.py"

Spécifiez la cible d'affichage avec l'option -n.

option Afficher la cible Détails
c framechart Graphique cadre
m memory stats utilisation de la mémoire
h code heatmap Carte thermique ligne par ligne

framechart

Le temps d'exécution et le nombre d'appels sont visualisés.

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

Pour être honnête, la liste affichée par cprofile peut être plus facile à traiter et à voir. .. ..

memory stats

L'utilisation de la mémoire est visualisée.

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

C'est assez bien car vous pouvez voir le nom du fichier et le nombre de lignes lors de la mesure de l'utilisation de la mémoire.

code heatmap

C'est une carte thermique.

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

Il semble que les lieux avec de nombreuses exécutions soient affichés dans des couleurs sombres. Cela semble bon. Je ne savais pas comment afficher les fichiers que j'importais ...

Recommended Posts

vprof - J'ai essayé d'utiliser le profileur pour Python
Notes diverses sur l'utilisation de python pour les projets
J'ai essayé d'utiliser Kwant, un module python pour le calcul du transport quantique
[Python] J'ai essayé de remplacer le nom de la fonction par le nom de la fonction
J'ai essayé la programmation python pour la première fois.
J'ai essayé d'utiliser le module Datetime de Python
J'ai essayé Python sur Mac pour la première fois.
J'ai essayé python pour la première fois avec heroku
J'ai essayé d'utiliser Thonny (Python / IDE)
J'ai essayé d'utiliser l'API checkio
J'ai essayé d'utiliser la bibliothèque Python de Ruby avec PyCall
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
[Pour les débutants] J'ai essayé d'utiliser l'API Tensorflow Object Detection
J'ai essayé tensorflow pour la première fois
J'ai essayé d'utiliser l'optimisation bayésienne de Python
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
Python: j'ai essayé le problème du voyageur de commerce
J'ai essayé le framework de test Python Tornado
J'ai essayé d'utiliser l'API BigQuery Storage
J'ai essayé d'utiliser paramétré
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai essayé d'utiliser argparse
J'ai recherché dans la bibliothèque l'utilisation de l'API Gracenote
J'ai essayé d'utiliser la mimesis
J'ai essayé d'utiliser anytree
J'ai essayé le web scraping en utilisant python et sélénium
J'ai essayé de "différencier" l'image avec Python + OpenCV
J'ai essayé d'utiliser aiomysql
J'ai essayé la détection d'objets en utilisant Python et OpenCV
J'ai essayé d'utiliser Summpy
J'ai essayé Python> autopep8
J'ai essayé de simuler "Birthday Paradox" avec Python
J'ai essayé la méthode des moindres carrés en Python
J'ai essayé d'utiliser PyCaret à la vitesse la plus rapide
J'ai essayé d'utiliser coturn
J'ai essayé d'utiliser Pipenv
J'ai essayé d'utiliser l'API Google Cloud Vision
J'ai essayé d'utiliser matplotlib
J'ai essayé d'utiliser "Anvil".
J'ai essayé d'utiliser Hubot
J'ai essayé d'utiliser mecab avec python2.7, ruby2.3, php7
J'ai essayé d'utiliser ESPCN
J'ai essayé d'utiliser openpyxl
[Python] J'ai cherché le plus long Pokémon Shiritori
J'ai essayé de "binariser" l'image avec Python + OpenCV
J'ai essayé d'utiliser Ipython
J'ai essayé d'utiliser PyCaret
J'ai essayé de lire un fichier CSV en utilisant Python
J'ai essayé d'utiliser cron
J'ai essayé Mind Meld pour la première fois
J'ai essayé d'utiliser ngrok
J'ai essayé d'utiliser face_recognition
J'ai essayé d'utiliser Jupyter
[Classification de texte] J'ai essayé d'utiliser le mécanisme d'attention pour les réseaux de neurones convolutifs.
J'ai essayé d'utiliser Firebase pour le serveur de cache de Django