最近用Matlab写程序的时候终于遇到了程序执行效率的问题,于是在Google上面搜索了一篇提高代码性能的文章,简单的概括一下。
文章是通过优化寄存器读写来提高执行速度的,主要体现在三个方面:
- 在做循环计算之前先分配好内存空间;
- 用列向量存取数据;
- 避免创建不必要的变量。
Matlab并不需要程序员实现定义变量的数据类型和大小。但是,如果事先不分配一段空间,每经过一次for循环,数组x的大小都会改变,这就需要新建一个数组并且把原来的数组复制到新的数组,增加了运算时间。
计算机内存存储二维数据是按照列的顺序保存,先存第一列,再存第二列,以此类推。所以按照列来读取数据会提高速度。
用了两张图标来展示这个方法的效果。
简单的说,就是尽量不要创建新的变量,旧的变量用完就要马上删除。