zoukankan      html  css  js  c++  java
  • 性能

    成员嵌套越深,访问速度越慢。location.href 总是快于window.location.href,而后者也要
    比window.location.href.toString()更快。如果这些属性不是对象的实例属性,那么成员解析还要在每个点上
    搜索原形链,这将需要更长时间。

    function hasEitherClass(element, className1, className2){
            return element.className == className1 || element.className == className2;
        }

    在此代码中,element.className 被访问了两次。很明显,在这个函数过程中它的值是不会改变的,但仍
    然引起两次对象成员搜索过程。你可以将它的值存入一个局部变量,消除一次搜索过程。修改如下:

    function hasEitherClass(element, className1, className2){
            var currentClassName = element.className;
            return currentClassName == className1 || currentClassName == className2;
        }

    此重写后的版本中成员搜索只进行了一次。既然两次对象搜索都在读属性值,所以有理由只读一次并将
    值存入局部变量中。局部变量的访问速度要快得多。

    一般来说,如果在同一个函数中你要多次读取同一个对象属性,最好将它存入一个局部变量。以局部变
    量替代属性,避免多余的属性查找带来性能开销。在处理嵌套对象成员时这点特别重要,它们会对运行速
    度产生难以置信的影响。

    在一个函数中,你绝不应该对一个对象成员进行超过一次搜索,
    除非该值可能改变。

  • 相关阅读:
    PHP IDE NetBeans代码主题和除掉竖线解决方案
    初识Python
    从LazyPhp说起
    从Pycharm说起
    准备系统地研究一下"高性能网站开发",挑战很大,希望能坚持到底!
    IIS日志分析[资源]
    见一好东西:Threaded WebDownload class with Progress Callbacks
    ASP.net Application 中使用域用户登录
    看图找错
    汉字转拼音缩写的函数(C#)
  • 原文地址:https://www.cnblogs.com/darr/p/5050470.html
Copyright © 2011-2022 走看看