profile matlab,使用profile功能对Matlab性能调优
做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性能调优相关推荐
- TUNED-ADM 性能调优分析
@linuxtoy 主题大纲 tuned-adm 简介03 性能调优方向04 性能调优场景09 性能调优分析15 总结49 tuned-adm 简介 RHEL 自带的性能调优工具,通过针对特定应用场景 ...
- elasticsearch原理_花几分钟看一下Elasticsearch原理解析与性能调优
基本概念 定义 一个分布式的实时文档存储,每个字段 可以被索引与搜索 一个分布式实时分析搜索引擎 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据 用途 全文检索 结构化搜索 分 ...
- iOS核心动画高级技术(十二) 性能调优
Code should run as fast as necessary, but no faster. 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Anima ...
- iOS应用性能调优的25个建议和技巧【转】
转载自:http://blog.jobbole.com/37984/ 首页 最新文章 资讯 程序员 设计 IT技术 创业 在国外 营销 趣文 特别分享 更多 > - Navigation - 首 ...
- 中间件业务在网易轻舟容器平台的性能调优实践
随着业务容器化的推进,经常有客户抱怨应用 QPS 无法和在物理机或者云主机上媲美,并且时常会出现 DNS 查询超时.短连接 TIME_OUT.网络丢包等问题,而在容器中进行调优与诊断的效果因为安装工具 ...
- spark 算子例子_Spark性能调优方法
公众号后台回复关键词:pyspark,获取本项目github地址. Spark程序可以快如闪电⚡️,也可以慢如蜗牛?. 它的性能取决于用户使用它的方式. 一般来说,如果有可能,用户应当尽可能多地使用S ...
- iOS应用性能调优建议
本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelofabri.com/,你还可以 ...
- JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)...
2019独角兽企业重金招聘Python工程师标准>>> 前提概要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外 ...
- JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码...
本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...
- iOS应用性能调优的25个建议和技巧
写在前面 本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelofabri.com/ ...
最新文章
- java B2B2C Springboot电子商务平台源码-SSO单点登录之OAuth2.0登录认证
- python将运行结果用窗口打开-如何打开新控制台并运行python脚本
- 【Android 安装包优化】WebP 图片格式兼容与性能 ( Android 中的 WebP 图片格式兼容问题 | Android 中的 WebP 图片格式性能 )
- 30 多年的软件经验,总结出 10 个编写出更好代码的技巧
- SpringBoot Controller接收参数的几种常用方式
- 民生银行场景化数据中台是如何炼成的?
- 十进制小数转换二进制的问题
- OpenCV_09 模版匹配和霍夫变换:霍夫线检测+霍夫圆检测
- 2008r2服务器频繁自动重启,解决windows server 2008 更新后不断重启现象
- css中选择器的使用
- 常见危险函数和特殊函数(二)----变量覆盖
- 多功能数字钟c语言单片机PPT,单片机多功能数字时钟设计电路大全(五款单片机多功能数字时钟设计电路)...
- EM 算法求解高斯混合模型python实现
- 数学建模方法-多项式拟合
- js全屏图片画廊幻灯片插件
- 干货|80天自学通过高级项目管理师
- 安装SqlServer 2017 时出现“Polybase要求安装Oracle JRE 7 更新51(64位)或更高版本规则失效”报错的解决办法
- lpush和rpush的区别_Redis系列(七):数据结构List双向链表中LPUSH、LPOP、RPUSH、RPOP、LLEN命令...
- Android音频焦点及混音策略
- Xcode11后新建项目怎么移除SceneDelegate?
热门文章
- SAP Fiori Elements - how to set breakpoint to get converted xml view parsed by f
- ABAP RTTC动态编程在SAP gateway中的应用
- OPA 16 - how is mocked transaction types loaded in the runtime
- 用nodejs xml2js读取xml文件
- WebSocket连接里客户端和服务器端的Socket ID
- open external url via transaction launcher sina baidu google web
- How to find unit test class by code
- IBASE text component
- 批量修改Service Order description的report
- SM37作业条目的存储表