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、可以用汇编来写
     

  • 相关阅读:
    Hadoop 文件系统命令行基础
    Mac bash 远程连接阿里云服务器
    Master in Vocab -- Day Six
    Master in Vocab -- Day Five
    Master in Vocab -- Day Four
    Master in Vocab -- Day Three
    mybatis学习一
    mysql事务,视图,权限管理,索引,存储引擎(胖胖老师)
    SpringAOP
    Spring事务
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007373.html
Copyright © 2011-2022 走看看