前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Matlab系列之运行程序的分析

Matlab系列之运行程序的分析

作者头像
狂人V
发布2020-07-24 09:55:13
8980
发布2020-07-24 09:55:13
举报
文章被收录于专栏:电子狂人电子狂人

不知道大家对System Generator系列中的资源分析以及时序分析的功能是否还有印象,这两个分析功能会将各模块所消耗的资源以及耗时都展现出来,用于资源或时序的优化,本篇将要记录的内容也与之有点相似,使用特定的功能或者语句对程序进行分析,然后得到各函数的耗时以及被调用次数等信息,最后再根据这些信息对程序进行优化,接下来就使用MATLAB提供的这两种方法来进行程序分析,下一篇再对程序优化和程序调试做介绍。

~Show Time~

01

第一种方法

使用一个工具——Profiler,这个工具是MATLAB中的一个图形用户接口,可以用于分析程序运行时各个部分所消耗的时间,可以从以下几个方面提供程序运行信息:

1)避免由于疏忽造成的非必要操作。

2)替换运行较慢的算法,选择快速算法。

3)通过存储变量的方式避免重复计算。

接下来说下使用Profiler进行程序运行分析的步骤:

1)查看Profiler生成的通体报告,查找运行时间最多的函数或调用最频繁的函数。

2)查看这些函数的详细报告,查找其中运行时间最多的语句或调用最频繁的语句。

3)确定运行时间最多的函数或代码是否存在改进的可能。

4)单击界面链接,打开相应文件进行修改。

5)重复进行上述的分析、修改,直至优化出满意的结果。

Profiler的使用介绍

1)打开方式

第一个打开的地方在主页->代码->运行并计时。

第二个打开的地方在编辑器->运行->运行并计时,要看到这个功能的前提就是需要打开一个M文件。

第三个打开方式就是直接在命令行窗口输入:profile viewer

以上的三种打开方式都可以打开一个探查器的窗口,也就是Profiler的界面,在“运行此代码”中输入需要分析的命令或表达式,然后点“启动探查”,就会开始对其进行分析。

使用一串代码进行探查测试:

[t,y] = ode23('lotka',[0 2],[20;20])

点击开始探查后,会出现如下结果,红色框中的就是所探查的程序运行的信息名称:

单击图中的蓝色字体,点的是红色框所选择的名称则会进行排序,点的是函数名称一栏中的函数,则会进入其内部观察更加详细的分析报告,这份报告中含有该函数中的每行代码的被调用次数和运行时间,以及子函数、函数列表等等,可以简单看下图的内容,此外,如果点击图中红色框里的蓝色字体,则会将此时的结果保存至新的窗口(该窗口会自动弹出),可以用于程序优化后与之对比,然后分析得到较优的结果。

注意:如果你一直点开始探查,在命令行窗口也有运行代码,但是就是没探查摘要出来,别慌,跟着下面的几张图改一下字体的预设即可解决。

02

第二种方法

这个方法可以说是更加简单易懂,直接在需要计时的部分前后放置计时函数的开始和结束即可,即:计时器的开始—tic,计时器的结束—toc。

因此使用的语法就是这样子的了:

tic

%需计时的程序代码

toc

t=toc%将记得的时间进行保存

注:如果计时的程序过于简单,计时误差会相对比较大,大家可以自己使用该种方法,然后对比结果分析下。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 电子狂人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档