zoukankan      html  css  js  c++  java
  • 提升代码的运算速度——代码优化的方法总结

    float、double的计算是比较复杂的,尤其是软件计算,要比较指数,有效数字等,肯定是需要好几个汇编指令的。
    浮点数的加法运算(不要问哥为啥只讲加法~)分为下面几个步骤:
    对阶
    位数求和
    规格化
    舍入
    校验判断

    因此总结以下几个方法:

    1、1维数组比2维数组好
    2、可以把小数转换为整数的乘除,乘法比除法快
    3、乘除可以使用移位运算,但前提是2的N次方。同样,如果不是,可以进行通分转换为2的N次方,再进行近似计算
    4、数组查表更加快
    5、32位可是使用2给ALU,for循环中跨度为2,循环中做2次计算代替逐个计算

    如下所示,

        for (size_t i = 0; i < count; i+=2)
        {
            /* code */
            a[i]=...;
            a[i+1]=...;
        }
        for (size_t i = 0; i < count; i++)
        {
            /* code */
            a[i]=...
        }

    6、缩短数据类型

    7、将函数声明为inline,可以加快系统运行,但会增加内存空间,以空间换时间
    8、数组放在高数缓存区(如果有的话)
    9、可以用汇编来写
     

  • 相关阅读:
    23种设计模式-原型模式
    23种设计模式-工厂方法模式
    23种设计模式-代理模式
    23种设计模式-装饰模式
    23种设计模式-策略模式
    CSS高度塌陷问题与解决办法
    Java: 多态
    Java: 接口
    Java: 继承
    Java: 单例设计模式
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007373.html
Copyright © 2011-2022 走看看