Generación de perfiles de código de Python en Visual Studio

Visual Studio proporciona características de generación de perfiles para aplicaciones de Python al depurar el código. El Depurador de Visual Studio permite recorrer paso a paso el código para comprobar variables, analizar el estado del programa, resolver posibles problemas, etc. Las características de generación de perfiles de Visual Studio proporcionan información sobre los tiempos de ejecución del programa. Puede usar esta información para ayudar a identificar problemas de rendimiento en el código.

La generación de perfiles está disponible para Python 3.9 y versiones anteriores cuando se usa un intérprete basado en CPython.

Requisitos previos

Visual Studio para Mac no se admite actualmente. Para obtener más información, consulte ¿Qué sucede con Visual Studio para Mac? Visual Studio Code en Windows, Mac y Linux funciona bien con Python a través de extensiones disponibles.

Uso del generador de perfiles con el intérprete basado en CPython

Al generar perfiles de una aplicación de Python, Visual Studio recopila datos durante la vigencia del proceso.

Siga estos pasos para empezar a trabajar con las funciones de generación de perfiles en Visual Studio:

  1. En Visual Studio Code, abra el archivo de código Python.

  2. Confirme que el entorno actual del código de Python es un intérprete basado en CPython. Puede comprobar el intérprete seleccionado en la ventana Entornos de Python.

  3. En la barra de herramientas principal, seleccione Depurar>Iniciar generación de perfiles de Python. Visual Studio abre el diálogo Configuración de la generación de perfiles:

    Captura de pantalla del diálogo de configuración de la generación de perfiles en Visual Studio.

  4. En el diálogo Configuración de la generación de perfiles, elija el archivo de código o el código de proyecto para el cual desea generar perfiles:

    • Para generar perfiles de todo el código del proyecto:

      1. Seleccione Abrir proyecto.

      2. Seleccione el proyecto en la lista desplegable. En la lista se muestran todos los proyectos de la solución actual de Visual Studio.

    • Para generar perfiles de un archivo específico:

      1. Seleccione Script independiente.

      2. Seleccione el Intérprete de Python en la lista desplegable o vaya a la ubicación. Para especificar un intérprete no indicado, elija Otro en la lista desplegable y, a continuación, especifique la Ruta de acceso del intérprete.

      3. Identifique el archivo Script o vaya a la ubicación.

      4. Especifique el Directorio de trabajo o vaya a la ubicación.

      5. Especifique los Argumentos de línea de comandos que quiera para el script.

  5. Seleccione Iniciar.

El generador de perfiles se ejecuta y abre un informe de rendimiento en Visual Studio. Puede revisar el informe para explorar cómo se dedica el tiempo en la aplicación:

Captura de pantalla del informe de rendimiento de generación de perfiles en Visual Studio 2022.

Captura de pantalla del informe de rendimiento de generación de perfiles en Visual Studio.

Uso del generador de perfiles con IronPython

IronPython es una implementación de .NET de Python, disponible en versiones de 32 y 64 bits. IronPython no es un intérprete basado en CPython. Visual Studio admite la depuración estándar de Python para IronPython, pero no las características de generación de perfiles.

En el caso de los proyectos de IronPython, puede usar el generador de perfiles de Visual Studio .NET. Ejecute el comando ipy.exe directamente como aplicación de destino con los argumentos adecuados para iniciar el script de inicio. En la línea de comandos, incluya el argumento -X:Debug para asegurarse de que el código Python se pueda depurar y permita la generación de perfiles. Este argumento genera un informe de rendimiento que incluye el tiempo invertido en el runtime de IronPython y en el código. El código se identifica mediante nombres alterados.

IronPython ofrece una generación de perfiles integrada, pero actualmente no hay ningún visualizador que funcione. Para obtener más información, consulte el blog An IronPython Profiler (Un generador de perfiles de IronPython) y Debugging and Profiling (Depuración y generación de perfiles) en la documentación de IronPython.