因为解决数独问题一直在考虑如何提升性能,提高解题速度 通过各种手段的优化,途中碰到一些js的性能问题,记录一下 然后还有一些目前自己仍然不理解的地方,也希望有朋友能给予解答
- Object.assign的性能比util._extend性能低
- console.log是个比较耗时的操作
- js在进行new 操作的时候耗时比较多,因为需要申请内存资源
新建的class对象,在第一次调用里面各种函数的时候速度都会慢,第二次实例化并且调用就快很多了
for(let map in maps) {
let sdk = new Sudoku({
display: false, // 是否打印过程,打印的速度慢很多
sudokuMap: maps[map],
}).start();
}
```js
上面的代码中如果运行到hard1这个数独的时候,在这种循环内所需要时间会比下面的写法少很多
并且第一次循环的第一个数独,解答时间和单独去解答这个数独所需时间是一致的
```js
let sdk = new Sudoku({
display: false, // 是否打印过程,打印的速度慢很多
sudokuMap: maps['hard1'],
}).start();
这一块需要参考上一篇文章中的数独解法的代码部分
这让我联想到eggjs里面的所有controller,service都会预先实例化 不知道跟这个是否有关系,有大神知道的希望告知下