区块链技术博客
www.b2bchain.cn

性能策略:利用闭包缓存计算结果求职学习资料

D0b2wT.gif

本文介绍了性能策略:利用闭包缓存计算结果求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

有这样一个函数。该函数接收两个整数参数,第一个参数表示开始数字,第二个参数表示结束数字,该函数的功能是计算开始到结束的范围中,所有整数的和。

function sum(start, end) {   let res = 0   for (let i = start; i <= end; i++) {     res += i   }   return res }

于是问题来了,如果是大额的计算,计算成本很高。例如,我多次调用该方法,计算 1 ~ 100000 的和。

sum(1, 100000) sum(1, 100000) sum(1, 100000) sum(1, 100000)

我们仔细分析一下,会发现有大量的冗余计算过程。1 ~ 100000 的计算,会被重复计算很多次。

既然都是计算 1 ~ 100000,那能不能优化一下,只计算一次就好了?

当然可以。

我们联想一下纯函数的特点,相同的输入,总能得到相同的输出。因此,如果我们能判断,输入的参数是相同的,那么就可以直接上上一次的计算结果返回出来。

优化方案如下:

“`js
function withSum(base) {
const cache = {}

有这样一个函数。该函数接收两个整数参数,第一个参数表示开始数字,第二个参数表示结束数字,该函数的功能是计算开始到结束的范围中,所有整数的和。

function sum(start, end) {   let res = 0   for (let i = start; i <= end; i++) {     res += i   }   return res }

于是问题来了,如果是大额的计算,计算成本很高。例如,我多次调用该方法,计算 1 ~ 100000 的和。

sum(1, 100000) sum(1, 100000) sum(1, 100000) sum(1, 100000)

我们仔细分析一下,会发现有大量的冗余计算过程。1 ~ 100000 的计算,会被重复计算很多次。

既然都是计算 1 ~ 100000,那能不能优化一下,只计算一次就好了?

当然可以。

我们联想一下纯函数的特点,相同的输入,总能得到相同的输出。因此,如果我们能判断,输入的参数是相同的,那么就可以直接上上一次的计算结果返回出来。

优化方案如下:

“`js
function withSum(base) {
const cache = {}

有这样一个函数。该函数接收两个整数参数,第一个参数表示开始数字,第二个参数表示结束数字,该函数的功能是计算开始到结束的范围中,所有整数的和。

function sum(start, end) {   let res = 0   for (let i = start; i <= end; i++) {     res += i   }   return res }

于是问题来了,如果是大额的计算,计算成本很高。例如,我多次调用该方法,计算 1 ~ 100000 的和。

sum(1, 100000) sum(1, 100000) sum(1, 100000) sum(1, 100000)

我们仔细分析一下,会发现有大量的冗余计算过程。1 ~ 100000 的计算,会被重复计算很多次。

既然都是计算 1 ~ 100000,那能不能优化一下,只计算一次就好了?

当然可以。

我们联想一下纯函数的特点,相同的输入,总能得到相同的输出。因此,如果我们能判断,输入的参数是相同的,那么就可以直接上上一次的计算结果返回出来。

优化方案如下:

“`js
function withSum(base) {
const cache = {}

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 性能策略:利用闭包缓存计算结果求职学习资料
分享到: 更多 (0)
D0b2wT.gif

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们