Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.

Búsqueda de cuellos de botella de código

Utilice el generador de perfiles para determinar qué funciones acaparan la mayor parte del tiempo de ejecución. Puede mejorar el rendimiento reduciendo los tiempos de ejecución para sus algoritmos y cálculos siempre que sea posible.

Una vez que optimice su código, utilice las siguientes técnicas para reducir la carga de la creación del objeto y la actualización de la visualización.

Por ejemplo, suponga que representa arreglos de elementos de 10 por 1000 utilizando la función myPlot:

function myPlot
   x = rand(10,1000);
   y = rand(10,1000);
   plot(x,y,'LineStyle','none','Marker','o','Color','b');
end
profile on
myPlot
profile viewer

Cuando describe este código, ve que la mayoría del tiempo se emplea en la función myPlot:

Ya que los arreglos de x e y contienen 1000 columnas de datos, la función de representación crea 1000 objetos de línea. En este caso, puede lograr los mismos resultados al crear una línea de 10000 puntos de datos:

function myPlot
   x = rand(10,1000);
   y = rand(10,1000);
   % Pass x and y as 1-by-1000 vectors
   plot(x(:),y(:),'LineStyle','none','Marker','o','Color','b');
end
profile on
myPlot
profile viewer

El tiempo de creación de objetos es un factor importante en este caso:

A menudo puede lograr mejoras en la velocidad de ejecución al comprender la manera de evitar o reducir las operaciones lentas por naturaleza. Para obtener información sobre la manera de mejorar el rendimiento utilizando esta herramienta, consulte la documentación para la función profile.