zoukankan      html  css  js  c++  java
  • nodejs学习笔记(3)

    在看了Node8的特性后的总结,后续慢慢补充。

    主要是针对一些编码规范,Node的v8引擎由于不同于其他语言的解析策略,因此需要注意一些特殊的方面。


    1、try/catch使用对代码运行性能影响明显,尽量减少使用范围
    写在for循环体内的try/catch语句可能会与代码优化引擎冲突,引起反优化/再优化的无穷循环

    2、尽量减少使用delete,v8引擎查找动态特性和原型链的方式非常复杂,性能较差

    v8引擎使用C++实现,每个对象在创建时,底层都会根据原型链创建一个对应的hidden class,对象的属性由隐藏类的属性表示,
    而运行时动态添加的属性,则以哈希表的形式存储,使用delete时,如果删除的是动态属性,则后续其他属性的查找方式也会从hidden class变成hash set,导致后续运行性能下降

    可以通过将需要删除的属性赋值为undefined来替代delete,JSON.stringify不会输出值是undefined的属性

    3、debugger关键字对代码性能影响明显

    4、关于promise

    jQuery链式写法的实现核心是,每个函数调用都返回this。
    promise的实现核心思想类似,每个调用then方法的对象,都需要返回一个thenable的对象

    5、注释

    在低版本的Node代码中,写在函数体内部的注释也会影响v8引擎对代码的优化过程,进而影响代码执行效率。

    因此,对于性能要求较高的代码,尽量减少注释或集中写在函数体外部,不影响调用时的执行效率。

    6、减少使用多态函数

    类似Java中多态的概念,如果一个函数的参数需要同时应对不同的变量类型,那么在Node8中,相比只需要处理一种特定类型参数的函数,运行性能会下降。

    在需要注意运行效率的场景下,有必要注意这一点。

  • 相关阅读:
    CSS基础
    bootbox api
    实现浏览器遗漏的原件 jQuery.selectCheckbox
    获取图片宽高方法
    javascript基础知识
    找工作总结
    cms配置使用
    页面被运营商加载广告
    iOS7 隐藏状态栏 hide statusBar
    Status Bar in iOS7
  • 原文地址:https://www.cnblogs.com/harelion/p/7634836.html
Copyright © 2011-2022 走看看