Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Medir el rendimiento de su programa

Descripción general de las funciones de temporización de rendimiento

La función y el temporizador de cronómetro funcionan y, le permiten tiempo durante cuánto tiempo tarda en ejecutarse el código.timeittictoc Utilice la función para una medición rigurosa del tiempo de ejecución de la función.timeit Utilice y para estimar el tiempo para porciones más pequeñas de código que no son funciones completas.tictoc

Para obtener detalles adicionales sobre el rendimiento del código, como la información de la llamada de función y el tiempo de ejecución de líneas individuales de código, utilice el generador de perfiles.MATLAB® Para obtener más información, consulte.Perfil para mejorar el rendimiento

Funciones de tiempo

Para medir el tiempo necesario para ejecutar una función, utilice la función.timeit La función llama a la función especificada varias veces y devuelve la mediana de las mediciones.timeit Toma un identificador de la función que se va a medir y devuelve el tiempo de ejecución típico, en segundos. Supongamos que ha definido una función, que toma dos entradas y que se definen en el área de trabajo.computeFunctionxy Puede calcular el tiempo para ejecutar la función utilizando.timeit

f = @() myComputeFunction(x,y); % handle to function timeit(f)

Porciones de tiempo del código

Para estimar cuánto tiempo tarda una porción de su programa en ejecutarse o para comparar la velocidad de diferentes implementaciones de partes de su programa, utilice las funciones del temporizador del cronómetro y.tictoc La invocación inicia el temporizador y el siguiente lee el tiempo transcurrido.tictoc

tic    % The program section to time.  toc

A veces los programas corren demasiado rápido y proporcionan datos útiles.tictoc Si el código es más rápido que 1/10 segundos, considere la posibilidad de medir que se ejecuta en un bucle y, a continuación, promedio para encontrar la hora de una sola ejecución.

La función cputime frente a TIC/TOC y tiempose

Se recomienda usar o y medir el rendimiento del código.timeittictoc Estas funciones devuelven el tiempo de reloj de pared. A diferencia de y, la función llama a su código varias veces y, por lo tanto, considera los costos por primera vez.tictoctimeit

La función mide el tiempo total de la CPU y las sumas en todos los subprocesos.cputime Esta medida es diferente del tiempo de reloj de pared que o/retorno, y podría ser engañosa.timeittictoc Por ejemplo:

  • El tiempo de CPU para la función suele ser pequeño, pero el tiempo de reloj de pared representa el tiempo real en el que se pausa la ejecución.pauseMATLAB Por lo tanto, el tiempo de reloj de pared puede ser más largo.

  • Si la función utiliza cuatro núcleos de procesamiento por igual, el tiempo de CPU podría ser aproximadamente cuatro veces mayor que el tiempo de reloj de pared.

Consejos para medir el rendimiento

Tenga en cuenta los siguientes consejos cuando mida el rendimiento del código:

  • Tiempo una porción bastante significativa de código. Idealmente, el código que está cronometrar debe tardar más de 1/10 segundos en ejecutarse.

  • Ponga el código que está tratando de tiempo en una función en lugar de cronometrarlo en la línea de comandos o dentro de un script.

  • A menos que intente medir el costo por primera vez, ejecute el código varias veces. Utilice la función.timeit

  • Evitar al medir el rendimiento.clear all Para obtener más información, consulte la función.clear

  • Asigne la salida a una variable en lugar de dejarla predeterminada.ans

Consulte también

| | |

Temas relacionados