这个算法的效率已经很高了,徐少侠后来又写了一个一次循环的,但效率没有提高。我的思路也是把两次循环改为一次循环,效率上提高了20%左右。
其实这个性能优化就是扣细节了,算法上没有什么改进
对两处进行改进
1. 一开始就对A和B 加 384,这样就不需要每次计算都减384了,减少了不少减法运算
2. 一次循环
另外eaglet 在考虑,是否可以考虑类似图像有损压缩的算法,把这个这个矩阵利用类似正交余弦变化转换到频域,
再通过频率域的数值分布得到特殊值在A,B 范围内的有效区域,然后针对这些有效区域进行运算,这样可以大大降低
运算的次数。不过这个数学模型真的很难建。
测试结果
eaglet 的原来的算法
5
9
3
0
0
26
用时917毫秒
徐少侠 的算法
5
9
3
0
0
26
用时554毫秒
eaglet改进的算法
5
9
3
0
0
26
用时459毫秒
改进后性能比徐少侠的提高了18%