主要内容

概要文件代码来提高性能

分析是什么?

分析是一种测量时间运行您的代码和识别MATLAB在哪里®花最多的时间。在你确定哪些功能是消费最多的时间,你可以评估他们可能的性能改进。您还可以配置代码确定哪一行代码没有运行。确定哪一行代码没有运行在开发测试代码时很有用,或者作为调试工具来帮助隔离代码中的一个问题。

您可以分析你的代码交互地使用MATLAB分析器或编程方式使用配置文件函数。关于分析代码编程的更多信息,请参阅配置文件。如果你分析并行运行的代码,最好的结果是使用并行计算工具箱™平行分析器。有关详细信息,请参见分析并行代码(并行计算工具箱)

提示

过早优化的代码可能不必要的复杂没有提供显著提高性能。让你的第一个实现尽可能的简单。然后,如果速度是一个问题,使用分析来识别瓶颈。

概要文件代码

分析你的代码并改善其性能,使用这样的一般过程:

  1. 在你的代码上运行分析器。

  2. 检查配置文件汇总结果。

  3. 调查功能和个人行代码。

    例如,您可能想要调查的功能和代码行,使用大量的时间或被称为最频繁。

  4. 保存分析结果。

  5. 实现代码中的潜在的性能改进。

    例如,如果你有一个负载声明在一个循环中,你可以移动负载声明外循环,这样它只被调用一次。

  6. 保存文件,并运行清除所有。再次运行分析器和比较结果与原始的结果。

  7. 重复以上步骤继续提高你的代码的性能。当你的代码花大部分的时间在几内置函数调用,你可能尽可能优化的代码。

在你的代码上运行分析器

一行代码上运行性能分析:

  1. 去打开分析器应用程序选项卡,在MATLAB,单击分析器的应用图标。您还可以输入概要文件查看器在命令窗口中。

  2. 分析器选项卡,和配置文件部分,输入你想配置文件的代码编辑框。

    例如,创建一个函数solvelotka.m发现猎物和捕食者的人口峰值为MATLAB提供的生态的例子:

    函数[preypeaks predatorpeaks] = solvelotka (t0、tfinal y0) [~ y] = ode23 (@lotka [t0 tfinal], y0);preypeaks = calculatepeaks (y (: 1));predatorpeaks = calculatepeaks (y (:, 2));结束函数峰值= calculatepeaks (A) (TF, P) = islocalmax(一个);山峰= P (TF);结束
    在编辑框中输入该语句概要文件的solvelotka功能:
    [preypeaks, predatorpeaks] = solvelotka(0, 15日[20;20])

    如果你曾被声明在当前MATLAB会话,您也可以编辑框的下拉列表中选择它。

  3. 点击运行时间和

    当完成分析,概要总结的分析器显示结果。声明你异形也显示是在命令窗口中运行。

概要文件的一个代码文件在编辑器中打开的编辑器选项卡,运行部分中,选择运行>运行时间和。分析器配置文件中的代码文件打开当前编辑器选项卡并显示结果的概要总结。

检查配置文件汇总结果

在运行代码分析器,概要介绍了统计信息的整体执行你的代码并提供为每个函数摘要统计信息。例如,下图显示了概要总结solvelotka函数。

顶部的概要文件汇总结果,火焰图显示了一个可视化表示的时间MATLAB运行代码。每个函数的运行由一个酒吧在火焰图。用户定义函数显示蓝色,MathWorks®函数显示在灰色。

图形显示的功能等级秩序,与父函数出现较低的图,和儿童出现更高的图上的功能。酒吧横跨整个图的底部贴上概要总结代表所有的代码。图上的酒吧的宽度表示的时间花了函数的运行总运行时间的百分比。

看到实际的百分比和时间值以及完整的函数名,悬停在条形图中。显示一个函数的详细信息包括个人信息代码行,单击酒吧代表这个函数。

下面的函数表火焰火焰图像帧显示类似的信息。最初的功能出现在时间的顺序来处理。此表描述每一列的信息。

描述
函数名

异形代码调用的函数的名称。

调用

函数调用次数的异形代码。

总时间

总时间的函数,在几秒钟内。时间函数包括儿童时间函数。分析器本身需要一些时间,这是包含在结果中。的总时间为零的文件可以运行时间是无关紧要的。

自我的时间

总时间以秒为单位在一个函数,不计任何孩子的时间函数。自我时间还包括一些开销造成分析的过程。

总时间的情节

图形显示展示自我的时间与总时间相比。

函数表的特定列进行排序,单击列标题的箭头。例如,单击箭头函数名列按字母顺序排序的功能。最初出现在命令结果总时间。显示一个函数的详细信息包括个人信息代码行,单击函数名。

研究函数和单独的代码行

找到代码中的潜在的改进,在火焰图寻找函数或函数表,使用大量的时间或者被称为最频繁。单击一个函数名显示功能的详细信息,包括个人信息的代码行。例如,单击solvelotka > calculatepeaks函数。分析器显示函数的详细信息。

在页面的顶部,当前函数的名字旁边,分析器显示的次数的函数被称为父函数和总时间的函数。使用下面的链接显示火焰图打开功能默认编辑器或显示的结果复制到一个单独的窗口。

回到概要总结,分析器选项卡上,单击概要总结按钮。你也可以点击概要总结杆底部的火焰图像。

一旦你点击单个函数,这些部分的分析器显示额外的信息:

部分 细节
火焰图像

火焰图像显示可视化表示的时间MATLAB在异形功能运行。图表显示了异形函数的层次结构,包括子函数(上面显示当前函数)和父函数(下面显示当前函数)。用户定义函数显示蓝色的(),和MathWorks功能显示在灰色()。

悬停在酒吧图中看到实际的百分比和时间值以及完整的函数名。点击酒吧代表一个函数来显示函数的详细信息。

父母

异形的函数调用的函数列表,包括父函数的次数称为异形函数。

单击列表中的一个函数名以显示函数的详细信息。

行,把最多的时间

列表的代码行异形函数使用了最大数量的处理时间。

点击一个代码行中看到它功能清单的上下文中部分,其余的功能代码。

孩子们

所有由异形函数调用的函数的列表。

单击列表中的一个函数名以显示函数的详细信息。

代码分析器的结果

的问题和潜在的改进列表异形函数。

覆盖率结果

代码覆盖率统计数据的代码在MATLAB的函数执行分析。

为你的代码,执行额外的代码覆盖分析收集声明和功能覆盖率的MATLAB源代码

功能清单

函数的源代码,如果它是一个MATLAB代码文件。

对于每一行代码,功能清单包括这些列:

  • 的每一行代码的执行时间

  • 的次数,MATLAB处决了行代码

  • 的行号。

    单击一个行号功能清单默认编辑器中打开功能。

  • 函数的源代码。文本显示的颜色如下:

    • 绿色——注释行

    • 黑色——行代码执行

    • 灰色- Non-executed行代码

默认情况下,最长的分析器强调行代码执行时间。高亮显示的颜色越深,时间越长,行代码执行了。改变强调标准,去分析器选项卡,和视图部分中,点击突出。从可用的选择突出显示选项。例如,强调行代码没有运行,选择非覆盖选择。

保存您的结果

比较后变更的影响作出了改进你的代码,保存您的分析结果。保存您的结果,使用下面的链接显示火焰图显示的结果复制到一个单独的窗口。

你也可以打印的结果去的分析器分析器选项卡并单击打印按钮。

在命令窗口中配置多个语句

配置多个声明在命令窗口中:

  1. 去命令窗口类型剖面上

  2. 输入并运行语句要概要文件。

  3. 运行的所有语句后,类型配置文件了

  4. 打开分析器通过输入概要文件查看器。你也可以去应用程序选项卡,在MATLAB,单击分析器的应用图标。

  5. 检查配置文件汇总结果。

概要文件应用程序

您可以在应用程序配置文件创建的应用程序设计师。您还可以配置文件应用程序附带MathWorks产品,如滤波器的设计和分析工具包含在信号处理工具箱™。s manbetx 845

概要文件应用程序:

  1. 去打开分析器应用程序选项卡,在MATLAB,单击分析器的应用图标。您还可以输入概要文件查看器在命令窗口中。

  2. 配置文件分析器的将来发布,点击开始分析。确保没有代码编辑框右边的按钮。

  3. 启动应用程序。

  4. 使用这个应用程序。

  5. 当你完成了,点击停止剖析分析器将来发布。

  6. 检查配置文件汇总结果。

请注意

排除应用程序启动过程的概要文件,相反步骤2和3。换句话说,你点击之前启动应用程序开始分析

另请参阅

应用程序

功能

相关的话题