美文网首页WebWeb前端之路程序员
Nodejs代码规范和API性能优化方案

Nodejs代码规范和API性能优化方案

作者: e042cbe4da21 | 来源:发表于2017-03-17 00:13 被阅读213次

1、增加eslint规范

在团队协作中,为避免低级 Bug、产出风格统一的代码,会预先制定编码规范。使用 Lint 工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量。

使用eslint不仅仅可以统一代码规范,它的很多规则同时考虑了javascript语言的隐藏缺点以及一些被广泛认同的性能规范,因此使用eslint也可以同时提升代码的性能。
可参考使用npm包eslint-config-fornode

2、避免使用同步代码

Node.js的一个显著特征是:它从上到下的设计和实现都是为了实现异步,一个同步调用可能将导致性能从每秒上千次的请求降至只有几十个。

不幸的是,我们代码总会有发生同步/阻塞的调用。

3、统一异步编程风格

代码中实现异步编程的代码包含了promise、callback、generator、async/await三种风格,为了增加代码的可读性统一进行封装使用,例如使用generator和yield风格进行异步编程,或者使用async/await。

4、代码保持小且轻

缩减不必须需要的模块,直接用标准的V8 JavaScript函数替代实现,性能会得到显著的提高。
用更简单更高效的方法实现相同的功能。(说起来容易做起来最难的一步)

5、定义局部变量

JavaScript引擎在作用域链中搜索的深度越大,那么操作也就会消耗更多的时间。引擎首先从 this 开始查找局部变量,然后是函数参数、本地定义的变量,最后遍历所有的全局变量。

因为局部变量在这条链的起端,所以查找局部变量总是比查找全局变量要块。所以当你想要不止一次地使用一个全局变量的时候,你应该将它定义成局部变量。

(es6最小作用域为块级)

6、优化循环

根据循环逻辑判断使用倒循环还是正循环,而不是一味的使用正循环。
考虑使用do...while(后测试循环)、while(前测试循环)、map、reduce、filter等代替for循环。(map、reduce、filter可实现函数式编程,链式代码更加易读)
简化终止条件,使用continue,break控制减少循环开销。
当循环次数是确定的,消除循环并使用多次函数调用往往会更快。
避免双重或更多重循环。

7、避免 for-in 循环(和基于函数的迭代)

这背后的逻辑非常直接:要遍历一个集合内的元素,你可以使用诸如for循环、或者do-while循环来替代for-in循环,for-in循环可能需要遍历额外的数组项(会遍历原型链)。

8、使用switch和三目运算符代替if

将条件分支,按可能性顺序从高到低排列:可以减少解释器对条件的探测次数

9、精简变量声明

同一种数值声明,同类别数据声明应该用一条语句声明,不同变量用“,”隔开,增加代码的可读性并且将变量代码分类,减少出错概率。

10、数组虑重

双重循环,时间复杂度为O(n2)。

排序后遍历,这种方法的时间复杂度为O(n),但是还要考虑排序的消耗。

Hash的方法方法时间复杂度为O(n),是应用最为广泛的去重方法。

11、数组、对象深拷贝实现和优化

数组深拷贝
var a = [1,2,3,4,5];

var b = Array.from(a);//方法1 ES6

var b = a.slice(0);//方法2

var b = a.concat([]);//方法3

var b = JSON.parse(JSON.stringify(array));//方法4

注意1:方法1、2、3只适合数组成员为非引用类型的情况,如果数组成员为引用类型,这些方法拷贝的引用类型成员依然为浅拷贝

注意2:方法4可以完美深拷贝数组,但该方法也并不是没有缺点,在此不详细描述。

对象深拷贝 使用Object.create实现 Object.create实现:
if (!Object.create) {

Object.create = function (o) {

function F() {}  //定义了一个隐式的构造函数

F.prototype = o;

return new F();  //其实还是通过new来实现的

};

}

相关文章

  • Nodejs代码规范和API性能优化方案

    1、增加eslint规范 在团队协作中,为避免低级 Bug、产出风格统一的代码,会预先制定编码规范。使用 Lint...

  • iOS优化方案

    iOS优化方案是个大的目标,可以细分为以下几点: 1.性能优化 2.架构优化 3.代码规范 4.线上监控 其中这几...

  • iOS优化方案

    iOS优化方案是个大的目标,可以细分为以下几点: 1.性能优化 2.架构优化 3.代码规范 4.线上监控 详细描述...

  • iOS 性能优化

    参考文章 微信读书 iOS 性能优化总结 iOS性能优化 iOS 启动连续闪退保护方案 iOS代码性能优化《阶级篇...

  • 项目开发规范参考

    现有项目的开发规范文档 目录 命名规则文件命名 HTML规范 CSS规范 JS规范变量申明简写代码性能优化注释规范...

  • Applicaiton启动流程分析

    本文基于API 28 Android 9.0的代码 性能优化的一个主要部分就是优化Application的启动时间...

  • Spark 性能优化方案

    Spark 性能优化方案(转自李智慧的Spark性能优化方案): Spark性能测试工具 •Spark性能测试基准...

  • WEB前端性能优化常用方案

    ===前端开发性能优化方案===减少HTTP请求次数和请求大小代码优化->有利于SEO->有利于扩展维护->有利于...

  • 大规模NodeJS项目架构与优化

    聊聊大规模NodeJS项目架构 NodeJS异步IO原理浅析及优化方案 NodeJS内存管理机制及内存优化 大规模...

  • Android性能优化--代码优化/编程规范

    常规原则 将Acitivity 中的Window 的背景图设置为空。getWindow().setBackgrou...

网友评论

    本文标题:Nodejs代码规范和API性能优化方案

    本文链接:https://www.haomeiwen.com/subject/pdmsnttx.html