使用MATLAB的profiler功能提高你程序的效率.doc_第1页
使用MATLAB的profiler功能提高你程序的效率.doc_第2页
使用MATLAB的profiler功能提高你程序的效率.doc_第3页
使用MATLAB的profiler功能提高你程序的效率.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、阅读使人充实,会谈使人敏捷,写作使人精确。培根使用 MATLAB的 profiler功能提高你程序的效率作者: 王子卓很多同学在研究和学习的过程中都会经常使用MATLAB。很多时候当编好一个程序之后,我们发现程序运行的效率达不到预想的要求。盲目的去找程序的缺陷往往既花时间也没有什么太大效果。这里我想告诉大家 MATLAB 很重要的功能 -Profiler- 能够帮助你很快找到程序的问题,然后可以很快的提高程序的效率。当你写完一个程序之后, 首先要试着运行。 试着运行的时候有两个目的, 一个是验证是否正确(这个不在我们讨论的范围) ,另外就是要看一下效率是否满意。对于后者你要做的是从主界面选择D

2、esktop-Profiler.( 见下图 )学问是异常珍贵的东西,从任何源泉吸收都不可耻。阿卜 日 法拉兹阅读使人充实,会谈使人敏捷,写作使人精确。培根然后从 profiler运行程序(运行的指令和你在这个主界面想运行程序的指令一样,可以有参数也可以没参数)Profiler 运行的结果也会在主界面显示。其结果与正常的运行的都一样,但是它可以给你显示出运行中每一行所执行的次数和花费的时间(见下图)。学问是异常珍贵的东西,从任何源泉吸收都不可耻。阿卜 日 法拉兹阅读使人充实,会谈使人敏捷,写作使人精确。培根然后你需要重点做的是仔细研究那些花费时间很长的步骤。很多情况下, 整个程序里的某一行或者某

3、两行会占据绝大多数的计算时间, 而通常那几行都是因为程序写的不好所以效率很低(通常容易出现的问题是, 1)重复计算一些可以只计算一次的事情,比如每次循环计算同一个 normcdf ,而实际你可以事先算好储存在一个数组,2) 使用太多层的for 循环,而实际可以用矩阵计算来代替,3 )可以把一些计算有序的结合起来,比如当计算某些乘法的顺序时候,应该刻意安排一些需要计算少的顺序)。在调试中,一般只需要focus 在这几行比较花时间的地方,其他的行都可以忽略。在真正执行大规模的运行之前(当然极为小的程序就无所谓了),我建议先保证占据超过20% 计算时间的行的效率已经都达到最优了。(注意当你改完一行之后,可能那行的时间一下就变成接近于 0 了,然后你应该接着看新的最占据计算时间的行,直到最重要的行都已经最优化为止。)这样会事半功倍。学问是异常珍贵的东西,从任何源泉吸收都不可耻。阿卜 日 法拉兹阅读使人充实,会谈使人敏捷,写作使人精确。培根多数时候,当用 MATLAB 比较熟练以后, 用 profiler 分析之后立刻就知道自己哪儿没写好(很多时候写的时候就知道,但是不知道会有多大影响,就先按照比较好写的方法写)。总的来说,这是一个非常实用的工具,这篇文章的目的就是希望没有使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论