最近用Matlab写程序的时候终于遇到了程序执行效率的问题,于是在Google上面搜索了一篇提高代码性能的文章,简单的概括一下。


文章是通过优化寄存器读写来提高执行速度的,主要体现在三个方面:

  • 在做循环计算之前先分配好内存空间;
  • 用列向量存取数据;
  • 避免创建不必要的变量。

Matlab并不需要程序员实现定义变量的数据类型和大小。但是,如果事先不分配一段空间,每经过一次for循环,数组x的大小都会改变,这就需要新建一个数组并且把原来的数组复制到新的数组,增加了运算时间。

计算机内存存储二维数据是按照列的顺序保存,先存第一列,再存第二列,以此类推。所以按照列来读取数据会提高速度。


用了两张图标来展示这个方法的效果。


简单的说,就是尽量不要创建新的变量,旧的变量用完就要马上删除。