zoukankan      html  css  js  c++  java
  • Javascript代码编写的逻辑冗余

    数据冗余,用空间换取空间。

    最常见的就是,关系型数据库设计,故意加其它table出现过的字段,然后查询某些数据就不用跨表查询,这样查询效率较高,这是优点。

    优点之后是缺点,缺点就是,修改数据,要跨表修改。

    那么,逻辑冗余呢?

    我遇到的情况之一就是,js自身的bug了,就是浮点数运算,偶尔会算着算着,突然冒出个结果是.0000000000之类。

    (这个呢,本身就是语言错误,那么我们要不要进入这个语言的源代码,来改写我们的js代码。可以,但代价高。

    而且,语言自己也会升级,当发现这是个bug,下个版本大多数情况下会修复。于是你以前写的代码很可能被废弃了。)

    于是,在js浮点数计算里面,基本用toFixed(n)来保证你要的精确度,不止一次使用,可能的话,处处使用。

    用代码数量换取结果的准确性。cpu对于同个逻辑执行好几次。

    因为有时候,对于某段代码的执行结果,你也不敢确定。尤其是修改别人的代码。这时候你就要逻辑冗余。

    优点就是,保证运算的结果准确性。

    缺点就是,下次修改代码,处处修改。

    另一个逻辑冗余的例子:

    function bubble_sort(array){
        var i,j,temp,array_length = array.length;
        for(i=0; i<array_length; i++){//第n次
            for(j=0; j<array_length; j++){//筛选出最大值,调换
                if(array[i] < array[j]){
                    temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
        return array;
    }

    上述例子,是冒泡排序。

    在第二个for循环里面,其实没必要每次都循环array_length次,这样会增加判断次数,从而增加cpu负担。但是结果还是一样。

    从性能上说,这不是块好代码。

    但从代码的记忆上,和编写上,是块好代码。 




    合乎自然而生生不息。。。
  • 相关阅读:
    PHP递归复制文件夹以及传输文件夹到其他服务器。
    CSS中的disable,hidden,readonly
    linux下用scp命令在两个服务器之间传输文件,利用php_scp函数进行文件传输
    在PHP中调用php_ssh实现远程登陆linux服务器并执行shell脚本。
    Centos7搭建lamp环境
    Golang 标准库构建 http.Requests 请求
    go modules 的使用
    Golang 自用第三方库
    《Go 语言并发之道》读后感-第五章
    《Go 语言并发之道》读后感
  • 原文地址:https://www.cnblogs.com/samwu/p/2573612.html
Copyright © 2011-2022 走看看