做PCANet的时候,Matlab抽风,加不了断点,无奈之下只好把所有的function都写到了一个m文件里。结果发现所有function写在同一个m文件下时,程序运行速度快很多。

后来师兄告诉我,用Matlab的profile功能可以查看程序各个函数的运行时间,这样就能找到原因所在。我尝试了一下,profile真是炫酷得不行。使用pfofile的代码如下:

profile on;

profile clear;

my_binary_net(1);%我的运行函数

profile viewer;

然后就会一个窗口出来,这个是我把所有function放在一个m文件时候的运行时间:

下面这幅图是我程序的function分开在不同m文件时候的运行时间:

通过这两个图可以发现造成时间大幅增加是因为addpath函数。这是因为,当我运行的程序的function在不同m文件时,我调用的很多function都包含addpath语句,于是matlab足足调用了22613次addpath。而我运行程序的function在同一个m文件时,我把多余的addpath语句删了,只在程序开头添加了addpath。

既然已经真相大白了,我把其他m文件的多余addpath语句删掉,再运行一次,结果如下:

这次就比上次用时少了500多秒。但还是比所有function写在一个m文件要多出200多秒,可以看出调用m文件也是要耗费很多时间的,但把不同函数写在不同m文件有助于代码复用,是良好的编程规范,没必要为了节省这点时间而把代码全部写在一个文件里。

最后再次发表一下感慨,profile真是个无比强大的功能!以后再也不用tic toc了!

profile matlab,使用profile功能对Matlab性能调优相关推荐

  1. TUNED-ADM 性能调优分析

    @linuxtoy 主题大纲 tuned-adm 简介03 性能调优方向04 性能调优场景09 性能调优分析15 总结49 tuned-adm 简介 RHEL 自带的性能调优工具,通过针对特定应用场景 ...

  2. elasticsearch原理_花几分钟看一下Elasticsearch原理解析与性能调优

    基本概念 定义 一个分布式的实时文档存储,每个字段 可以被索引与搜索 一个分布式实时分析搜索引擎 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据 用途 全文检索 结构化搜索 分 ...

  3. iOS核心动画高级技术(十二) 性能调优

    Code should run as fast as necessary, but no faster. 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Anima ...

  4. iOS应用性能调优的25个建议和技巧【转】

    转载自:http://blog.jobbole.com/37984/ 首页 最新文章 资讯 程序员 设计 IT技术 创业 在国外 营销 趣文 特别分享 更多 > - Navigation - 首 ...

  5. 中间件业务在网易轻舟容器平台的性能调优实践

    随着业务容器化的推进,经常有客户抱怨应用 QPS 无法和在物理机或者云主机上媲美,并且时常会出现 DNS 查询超时.短连接 TIME_OUT.网络丢包等问题,而在容器中进行调优与诊断的效果因为安装工具 ...

  6. spark 算子例子_Spark性能调优方法

    公众号后台回复关键词:pyspark,获取本项目github地址. Spark程序可以快如闪电⚡️,也可以慢如蜗牛?. 它的性能取决于用户使用它的方式. 一般来说,如果有可能,用户应当尽可能多地使用S ...

  7. iOS应用性能调优建议

    本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelofabri.com/,你还可以 ...

  8. JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)...

    2019独角兽企业重金招聘Python工程师标准>>> 前提概要:         JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外 ...

  9. JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码...

    本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...

  10. iOS应用性能调优的25个建议和技巧

    写在前面 本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelofabri.com/ ...

最新文章

  1. java B2B2C Springboot电子商务平台源码-SSO单点登录之OAuth2.0登录认证
  2. python将运行结果用窗口打开-如何打开新控制台并运行python脚本
  3. 【Android 安装包优化】WebP 图片格式兼容与性能 ( Android 中的 WebP 图片格式兼容问题 | Android 中的 WebP 图片格式性能 )
  4. 30 多年的软件经验,总结出 10 个编写出更好代码的技巧
  5. SpringBoot Controller接收参数的几种常用方式
  6. 民生银行场景化数据中台是如何炼成的?
  7. 十进制小数转换二进制的问题
  8. OpenCV_09 模版匹配和霍夫变换:霍夫线检测+霍夫圆检测
  9. 2008r2服务器频繁自动重启,解决windows server 2008 更新后不断重启现象
  10. css中选择器的使用
  11. 常见危险函数和特殊函数(二)----变量覆盖
  12. 多功能数字钟c语言单片机PPT,单片机多功能数字时钟设计电路大全(五款单片机多功能数字时钟设计电路)...
  13. EM 算法求解高斯混合模型python实现
  14. 数学建模方法-多项式拟合
  15. js全屏图片画廊幻灯片插件
  16. 干货|80天自学通过高级项目管理师
  17. 安装SqlServer 2017 时出现“Polybase要求安装Oracle JRE 7 更新51(64位)或更高版本规则失效”报错的解决办法
  18. lpush和rpush的区别_Redis系列(七):数据结构List双向链表中LPUSH、LPOP、RPUSH、RPOP、LLEN命令...
  19. Android音频焦点及混音策略
  20. Xcode11后新建项目怎么移除SceneDelegate?

热门文章

  1. SAP Fiori Elements - how to set breakpoint to get converted xml view parsed by f
  2. ABAP RTTC动态编程在SAP gateway中的应用
  3. OPA 16 - how is mocked transaction types loaded in the runtime
  4. 用nodejs xml2js读取xml文件
  5. WebSocket连接里客户端和服务器端的Socket ID
  6. open external url via transaction launcher sina baidu google web
  7. How to find unit test class by code
  8. IBASE text component
  9. 批量修改Service Order description的report
  10. SM37作业条目的存储表