Используйте профилировщика кода, чтобы определить, какие функции вносят большую часть времени во время выполнения. Можно сделать повышения производительности путем сокращения времен выполнения алгоритмов и вычислений по мере возможности.
Если вы оптимизировали свой код, используйте следующие методы, чтобы уменьшить издержки создания объекта и обновления отображения.
Например, предположите, что вы строите график 10 1000 массивов элемента с помощью функции 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
Когда вы профилируете этот код, вы видите, что большая часть времени проведена в функции myPlot
:
Поскольку массивы x и y содержат 1 000 столбцов данных, функция plot создает 1 000 объектов линии. В этом случае можно достигнуть тех же результатов путем создания одной строки с 10 000 точек данных:
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
Время создания объекта является основным фактором в этом случае:
Можно часто достигать улучшений скорости выполнения путем понимания, как избежать или минимизировать по сути медленные операции. Для получения информации о том, как улучшить производительность с помощью этого инструмента, см. документацию для функции profile
.